Questo è vecchio ma non riesco a vedere l'opzione dritto in avanti qui (IMO):
[ item for item in l for repetitions in range(2) ]
Così, per il caso specifico:
>>> l = ['a', 'c', 'e', 'b']
l = ['a', 'c', 'e', 'b']
>>> [ i for i in l for r in range(2) ]
[ i for i in l for r in range(2) ]
['a', 'a', 'c', 'c', 'e', 'e', 'b', 'b']
>>>
e generalizzando:
[ item for item in l for _ in range(r) ]
dove r è la quantità di ripetizioni che si desidera.
Quindi questo ha una O (n.r) complessità di tempo e spazio, è breve, senza dipendenze e anche idiomatico.
'lista (itertools.chain.from_iterable ([(el, el) per el in l]))' – tesla1060
@ tesla1060 Bene, funziona, quindi qual è il tuo problema? –
Non riesco a trovare domande simili, perché sono in downvoted? Inoltre, ho persino fornito un modo per commentare, ma vorrei essere sicuro che ci sia un modo più semplice per farlo. – tesla1060