Aggiungi un elemento a un elenco più volte con la comprensione dell'elenco [duplicato]

Aug 23 2020

Sto facendo una lista nel modo seguente:

lst = ['val1', 'val2', 'val3']

output = [item for it in lst]

... tuttavia, vorrei aggiungere un numero arbitrario di ciascun elemento all'elenco, non solo uno.

Qualcosa del genere (se volessi aggiungere 3 elementi ogni volta all'elenco):

output = [item*3 for item in lst]

... in modo che se lstassomiglia a questo:

['val1', 'val2', 'val3']

... outputassomiglia a questo:

['val1', 'val1', 'val1', 'val2', 'val2', 'val2'...]

Come posso farlo?

Risposte

3 marsnebulasoup Aug 23 2020 at 09:32

In questo modo (dovrai cambiare il codice in base alle tue esigenze, ovviamente):

lst = ['val1', 'val2', 'val3']

output = [i for i in lst for x in range(3)]

print(output)

Output (formattato):

[
  'val1', 'val1', 'val1',
  'val2', 'val2', 'val2',
  'val3', 'val3', 'val3'
]

Modificare 3 nel numero di volte che si desidera ripetere l'elemento.

2 LevB Aug 23 2020 at 10:08

Che ne dici di scorrere l'elenco nx?

li = ['val1', 'val2', 'val3']
n=3
print(sorted([el for el in li*n]))

Produzione:

['val1', 'val1', 'val1', 'val2', 'val2', 'val2', 'val3', 'val3', 'val3']