Cicli annidati e List Comprehension

s
sam_dc (680 points)
3 6 7
asked Feb 5, 2020 in Programmare in Python by sam_dc (680 points)
Ragazzi ho una domanda che potrebbe sembrare piuttosto banale:
È possibile creare una lista di stringhe (o altre strutture dati diverse dalla lista) utilizzando una list comprehension e dei cicli annidati nello stesso momento?

Ad esempio vorrei ottenere la lista

['a', 'b', 'c', 'd', 'e']

invece di

[['a'], ['b'], ['c'], ['d'], ['e']]

sfruttando la sintassi della list comprehension, utilizzando for annidati, senza necessariamente creare liste di liste, bensì liste di stringhe (ad esempio).

Grazie!

2 Answers

Lorenzomx (1250 points)
2 4 11
answered Feb 5, 2020 by Lorenzomx (1,250 points)

Se parti da "abcde" puoi creare la lista ['a', 'b', 'c', 'd', 'e'] con: lista=[x for x in "abcde"], non devi per forza creare liste di liste, con la sintassi della list comprehension puoi creare liste di interi, di float, di stringhe e di qualsiasi altra cosa. La stessa cosa la puoi applicare agli insiemi {x for x in "abcde"}, e allo stesso modo ai dizionari. 

andrea.sterbini (172300 points)
510 927 1776
commented Feb 5, 2020 by andrea.sterbini (172,300 points)
hai mai provato con list("stringa") ?
s
sam_dc (680 points)
3 6 7
commented Feb 6, 2020 by sam_dc (680 points)
Esatto, fin qui mi era tutto chiaro. Il problema si presenta quando ho la necessita di usare cicli annidati, dato che il ciclo più interno crea una lista che invece non vorrei.
Alexei_Pozidriv (1580 points)
0 4 14
answered Feb 7, 2020 by Alexei_Pozidriv (1,580 points)
Troppe poche informazioni per rispondere correttamente ed in modo preciso alla tua domanda.

Potresti spiegarti meglio, più nel dettaglio evitando l'ambiguità il più possibile, solo così potremo rispondere alla tua domanda.