with two has concatenate attribute array python

two - python join array



Lista de ceros en python (8)

Esta pregunta ya tiene una respuesta aquí:

¿Cómo puedo crear una list que contiene solo ceros? Quiero poder crear una list ceros para cada int dentro del range(10)

Por ejemplo, si el int en el rango fue 4 obtendré:

[0,0,0,0]

y para 7 :

[0,0,0,0,0,0,0]


Esta es la forma de xrange :

list(0 for i in xrange(0,5))


La manera más fácil de crear una lista donde todos los valores son iguales es multiplicando una lista de elementos por n .

>>> [0] * 4 [0, 0, 0, 0]

Entonces para tu ciclo:

for i in range(10): print [0] * i


Si desea una función que devolverá un número arbitrario de ceros en una lista, intente esto:

def make_zeros(number): return [0] * number list = make_zeros(10) # list now contains: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]


zeros=[0]*4

puede reemplazar 4 en el ejemplo anterior con el número que desee.


#add code here to figure out the number of 0''s you need, naming the variable n. listofzeros = [0] * n

si prefieres ponerlo en la función, solo return listofzeros ese código y agrega la lista de return listofzeros

Que se vería así:

def zerolistmaker(n): listofzeros = [0] * n return listofzeros

muestra de salida:

>>> zerolistmaker(4) [0, 0, 0, 0] >>> zerolistmaker(5) [0, 0, 0, 0, 0] >>> zerolistmaker(15) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] >>>


$ python3 >>> from itertools import repeat >>> list(repeat(0, 7)) [0, 0, 0, 0, 0, 0, 0]


$python 2.7.8 from timeit import timeit import numpy timeit("list(0 for i in xrange(0, 100000))", number=1000) > 8.173301935195923 timeit("[0 for i in xrange(0, 100000)]", number=1000) > 4.881675958633423 timeit("[0] * 100000", number=1000) > 0.6624710559844971 timeit(''list(itertools.repeat(0, 100000))'', ''import itertools'', number=1000) > 1.0820629596710205

Debe usar [0] * n para generar una lista con n ceros.

Vea por qué [] es más rápido que list ()

Sin embargo, hay un itertools.repeat , tanto itertools.repeat como [0] * n crearán listas cuyos elementos se refieren a la misma id . Esto no es un problema con objetos inmutables como enteros o cadenas, pero si intenta crear una lista de objetos mutables como una lista de listas ( [[]] * n ), entonces todos los elementos se referirán al mismo objeto.

a = [[]] * 10 a[0].append(1) a > [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]

[0] * n creará la lista inmediatamente, mientras que la repeat se puede usar para crear la lista perezosamente cuando se acceda por primera vez.

Si se trata de una gran cantidad de datos y su problema no requiere una longitud variable de la lista o múltiples tipos de datos dentro de la lista, es mejor usar matrices numpy .

timeit(''numpy.zeros(100000, numpy.int)'', ''import numpy'', number=1000) > 0.057849884033203125

numpy matrices numpy también consumirán menos memoria.


zlists = [[0] * i for i in range(10)]

zlists[0] es una lista de 0 ceros, zlists[1] es una lista de 1 cero, zlists[2] es una lista de 2 ceros, etc.