tuplas - Agregar entero al principio de la lista en Python
metodos de listas en python (5)
Otra forma de hacer lo mismo,
list[0:0] = [a]
Tengo un entero y una lista. Me gustaría hacer una nueva lista de ellos comenzando con la variable y terminando con la lista. Escribiendo a + list
me sale errores. El compilador maneja a
como a
entero, por lo tanto, no puedo usar adjuntar, o extender tampoco. ¿Cómo harías esto?
Se pueden hacer nuevas listas simplemente agregando listas juntas.
list1 = [''value1'',''value2'',''value3'']
list2 = [''value0'']
newlist=list2+list1
print(newlist)
Tenga en cuenta que si está intentando realizar esa operación a menudo, especialmente en los bucles, una lista es la estructura de datos incorrecta .
Las listas no están optimizadas para modificaciones en el frente, y somelist.insert(0, something)
es una operación O (n) .
somelist.pop(0)
y del somelist[0]
también son operaciones O (n).
La estructura de datos correcta a utilizar es una deque
del módulo de collections
. los deques exponen una interfaz que es similar a las de las listas, pero están optimizadas para las modificaciones de ambos puntos finales. Disponen de un método de inserción en la parte delantera.
Manifestación:
In [1]: lst = [0]*1000
In [2]: timeit -n1000 lst.insert(0, 1)
1000 loops, best of 3: 794 ns per loop
In [3]: from collections import deque
In [4]: deq = deque([0]*1000)
In [5]: timeit -n1000 deq.appendleft(1)
1000 loops, best of 3: 73 ns per loop
>>> a = 5
>>> li = [1, 2, 3]
>>> [a] + li # Don''t use ''list'' as variable name.
[5, 1, 2, 3]
>>>var=7
>>>array = [1,2,3,4,5,6]
>>>array.insert(0,var)
>>>array
[7, 1, 2, 3, 4, 5, 6]
Cómo funciona:
array.insert(index, value)
Insertar un elemento en una posición dada. El primer argumento es el índice del elemento antes del cual se inserta, por lo que array.insert(0, x)
inserta al array.insert(len(array), x)
de la lista, y array.insert(len(array), x)
es equivalente a array.append(x)
Los valores negativos se consideran relativos al final de la matriz.