Allanar la lista a "eliminar los corchetes" utilizando una lista anidada de comprensión. ¡Esto anulará cada lista almacenada en su lista de listas!
list_of_lists = [[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]]
flattened = [val for sublist in list_of_lists for val in sublist]
listas por comprensión anidadas evalúan de la misma manera que se desenvuelva (es decir, añadir nueva línea y ficha para cada nuevo bucle Así que en este caso:.
flattened = [val for sublist in list_of_lists for val in sublist]
es equivalente a:
flattened = []
for sublist in list_of_lists:
for val in sublist:
flattened.append(val)
La gran diferencia es que la lista de comp evalúa MUCHO más rápido que el bucle desenredado y elimina las llamadas anexadas!
Si tiene varios elementos en una sublista, la compilación de la lista incluso aplanará eso. es decir
>>> list_of_lists = [[180.0, 1, 2, 3], [173.8], [164.2], [156.5], [147.2], [138.2]]
>>> flattened = [val for sublist in list_of_lists for val in sublist]
>>> flattened
[180.0, 1, 2, 3, 173.8, 164.2, 156.5, 147.2,138.2]
En otras palabras, usted tiene una lista de listas y que desea poder hacer trabajo en todos los miembros de las listas internas? Además, dado que todas estas listas internas tienen un solo valor, ¿vale la pena garantizar que solo el valor se inserte en la lista externa?¿O es posible que algunas de las listas tengan múltiples elementos? Es importante brindar toda la información posible, lo más precisa posible. –
Para ayudar a las personas a responder sus preguntas en el futuro, trate de evitar declaraciones generales como "los corchetes no me dejan" y en su lugar, brinde un ejemplo específico de algo que intentó hacer que no funcionó, y copie y pegue un pequeño código de prueba que muestre el error resultante. – DSM
relacionado [aplastar lista anidada] (http://stackoverflow.com/q/952914/4279) – jfs