utilizar el módulo matriz. Con él puede almacenar colecciones del mismo tipo de manera eficiente.
>>> import array
>>> import itertools
>>> a = array_of_signed_ints = array.array("i", itertools.repeat(0, 10))
Para obtener más información, por ejemplo, diferentes tipos, mira the documentation of the array module. Para hasta 1 millón de entradas esto debería sentirse muy rápido. Para 10 millones de entradas, mi máquina local piensa durante 1,5 segundos.
El segundo parámetro a array.array es un generador , que construye la secuencia definida como que se lee. De esta forma, el módulo de matriz puede consumir los ceros uno por uno, pero el generador solo usa memoria constante. Este generador no se agranda (en cuanto a la memoria) si la secuencia se alarga. La matriz crecerá, por supuesto, pero eso debería ser obvio.
Se utiliza como una lista:
>>> a.append(1)
>>> a.extend([1, 2, 3])
>>> a[-4:]
array('i', [1, 1, 2, 3])
>>> len(a)
14
... o simplemente convertir a una lista:
>>> l = list(a)
>>> len(l)
14
Sorprendentemente
>>> a = [0] * 10000000
es más rápido en la construcción de el método de matriz. ¡Imagínate!:)
Python no tiene una estructura de datos de la matriz incorporada. Lo más cerca que te encuentras son listas. – int3
Sorprendentemente, nadie ha preguntado para qué necesita esto. Por lo general, las listas están bien, independientemente del hecho de que pueda almacenar otras cosas en ellas (son solo listas de referencias a otros objetos, que pueden ser cualquier cosa). Pero tal vez haya alguna razón que no funcionaría bien para usted ... –
Recomiendo encarecidamente el tutorial de Python: http://docs.python.org/tutorial/ Solo le tomará un par de horas de su tiempo. –