Así que tienen una matriz de la forma siguiente:¿Por qué no puedo obtener dos listas de una lista de comprensión?
[(1, u'first_type', u'data_gid_1'),
(2, u'first_type', u'data_gid_2'),
(3, u'first_type', u'data_gid_3'),
(4, u'first_type', u'data_gid_4')]
Ahora quiero extraer el primer y el último elemento de cada lista en el interior en listas separadas. Entonces si lo hago:
>>> ids = [dat[0] for dat in all_data]
>>> gds = [dat[2] for dat in all_data]
Esto funciona como esperaba. Sin embargo yo estaba tratando de fusionar estos dos en una llamada, algo así como:
(ids, gds) = [(dat[0], dat[2]) for dat in all_data]
Sin embargo, esto falla con un: ValueError: too many values to unpack
Así podría alguien explicar por qué ocurre esto y si lo que estoy tratando de hacer incluso es posible
Saludos, Bogdan
¿Hay algún problema al dejarlo como dos líneas? Quiero decir, a veces es agradable ser claro. –
No pasa nada, esa sigue siendo la solución que estoy usando, solo quería entender por qué estaba obteniendo el error para usos futuros. – Bogdan
@Bogdan Eso es verdaderamente honorable. Te daría un +1 por ese comentario. – cwallenpoole