Quando ho bisogno di aggiungere diversi articoli identici alla lista che uso lista.extend lista:lista.extend e comprensione
a = ['a', 'b', 'c']
a.extend(['d']*3)
Risultato
['a', 'b', 'c', 'd', 'd', 'd']
Ma, come fare il simile con lista comprensione?
a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
Risultato
[['a', 'a'], ['b', 'b'], ['c']]
Ma ho bisogno di questo
['a', 'a', 'b', 'b', 'c']
Tutte le idee?
Grazie! Funziona ma non capisco nemmeno come leggere questa espressione. – Stas
'per x in a' estrae ciascuno degli elementi di' a' uno alla volta in 'x'. 'per y in ...' crea una nuova lista da 'x' ed estrae i suoi elementi uno alla volta in' y'. Succede tutto nello stesso momento (più o meno), facendo sì che tutto sia allo stesso livello di nidificazione. –
Di solito è più chiaro con la decompressione: [y per (articolo, volte) in a per y in [elemento] * volte] – tokland