2012-10-07 41 views

Respuesta

12

La manera más directa de hacerlo con las listas es el uso de una lista de comprensión:

c = [b[i] for i in index] 

Pero, dependiendo exactamente lo que sus datos parece y lo demás que tiene que hacer con ella, podría utilizar matrices numpy - en cuyo caso:

c = b[index] 

sería hacer lo que quiera, y evitaría la posible sobrecarga de memoria para rebanadas grandes: las matrices numpy se almacenan de manera más eficiente que las listas, y el corte toma una vista de la matriz en lugar de hacer una copia parcial.

+0

gracias lvc que tienen este mensaje de error c = b [índice] Rastreo (llamada más reciente pasado): archivo "", línea 1, en TypeError: índices de la lista deben ser enteros , no lista –

+0

@Gianni como dije en mi respuesta, eso funcionará si usa matrices numpy en lugar de listas. Pueden tomar todo tipo de cosas interesantes como índices; las listas solo pueden tomar enteros (y sectores con argumentos enteros). – lvc

+1

+1 para usar una lista de comprensión. Es bueno enseñar a novatos. –

Cuestiones relacionadas