2012-09-06 29 views
5

código Python Mi genera una lista cada vez que se realiza un bucle:cómo crear una lista de listas

list = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1) 

Pero quiero salvar a cada uno - Necesito una lista de listas correctas?

así que he intentado:

list[i] = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1) 

Pero Python ahora me dice que "la lista" no está definido. No estoy seguro de cómo voy a definirlo. Además, ¿una lista de listas es la misma que una matriz?

¡Gracias!

+0

Por favor, muestre su ciclo completo, no solo la línea que realiza la tarea. –

+7

es una MALA idea crear una variable que tenga el mismo nombre que una función incorporada. – tMC

+0

Una matriz no es una lista de listas. "matriz" tiene diferentes significados en diferentes idiomas (en C una matriz no puede redimensionarse, en Perl una puede) pero en la mayoría de los casos es más o menos análoga a una lista normal de Python. –

Respuesta

4

Uso método append, por ejemplo:

lst = [] 
line = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1) 
lst.append(line) 
+6

-1 para usar el nombre completo 'list'. Sugiero 'primero'. –

+1

Gracias hombre. Solo usé "lista" como ejemplo, pero veo que debería haber usado algo más. Así que hice que funcionara como sugirió. Ahora cuando imprimo la lista [0] o la lista [7] etc., obtengo la respuesta correcta. Pero cuando intento imprimir todo con la lista de impresión, obtengo una lectura extraña con la palabra "array" y "dtype" en ella. – user1551817

15

Desea crear una lista vacía, tiene que poner la lista creada a ella. Esto te dará la lista de listas. Ejemplo:

>>> l = [] 
>>> l.append([1,2,3]) 
>>> l.append([4,5,6]) 
>>> l 
[[1, 2, 3], [4, 5, 6]] 
2

En primer lugar Nolist uso como un nombre-variable que es una función incorporada.

No soy muy clara de lo que está pidiendo (un poco más de contexto ayudaría), pero tal vez esto es servicial,

my_list = [] 
my_list.append(np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1)) 
my_list.append(np.genfromtxt('temp2.txt', usecols=3, dtype=[('floatname','float')], skip_header=1)) 

que va a crear una lista (un tipo de matriz mutable en python) llamó a my_list con la salida del método np.getfromtext() en los primeros 2 índices.

La primera puede ser referenciado con my_list[0] y el segundo con my_list[1]

4

Cree su lista antes de su bucle, de lo contrario se crea cada bucle.

>>> list1 = [] 
>>> for i in range(10) : 
... list1.append(range(i,10)) 
... 
>>> list1 
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [3, 4, 5, 6, 7, 8, 9], [4, 5, 6, 7, 8, 9], [5, 6, 7, 8, 9], [6, 7, 8, 9], [7, 8, 9], [8, 9], [9]] 
Cuestiones relacionadas