Cuando tengo que añadir varios artículos idénticos a la lista utilizo lista.extend:lista.extend y comprensión de lista
a = ['a', 'b', 'c']
a.extend(['d']*3)
Resultado
['a', 'b', 'c', 'd', 'd', 'd']
Pero, cómo hacer el similar con la lista ¿comprensión?
a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
Resultado
[['a', 'a'], ['b', 'b'], ['c']]
Pero necesito éste
['a', 'a', 'b', 'b', 'c']
¿Alguna idea?
Gracias! Funciona, pero ni siquiera entiendo cómo leer esta expresión. – Stas
'for x in a' extrae cada uno de los elementos de' a' uno a la vez en 'x'. 'for y in ...' crea una nueva lista de' x' y extrae sus elementos de a uno en 'y'. Todo sucede al mismo tiempo (más o menos), haciendo que todo esté en el mismo nivel de anidación. –
Por lo general, es más claro al desempacar: [y para (artículo, veces) en a para y en [elemento] * veces] – tokland