Comprensione delle liste Python spiegata con esempi
Le list comprehension forniscono un modo conciso per creare liste in Python. Sono più leggibili e spesso più efficienti rispetto all'uso di loop tradizionali. Questo articolo esplorerà cosa sono le list comprehension, come funzionano e fornirà esempi per illustrarne l'uso.
Che cosa è una List Comprehension?
Una list comprehension è un modo compatto per elaborare tutti o parte degli elementi in una raccolta e restituire un elenco con i risultati. La sintassi di una list comprehension è:
[expression for item in iterable if condition]
Qui, expression
è l'elemento corrente nell'iterazione, ma è anche il risultato, che puoi manipolare prima che finisca come un elemento di un elenco. iterable
è la raccolta che stai eseguendo il ciclo e condition
è un filtro facoltativo che include solo gli elementi che soddisfano la condizione.
Esempi di base
Creazione di un elenco di quadrati
Per creare un elenco di quadrati di numeri da 0 a 9, puoi utilizzare una comprensione di elenco come segue:
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
squares = [x ** 2 for x in numbers]
print(squares)
Produzione:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Filtraggio degli elementi
Puoi anche aggiungere una condizione per filtrare gli elementi. Ad esempio, per ottenere solo i numeri pari dall'elenco:
even_squares = [x ** 2 for x in numbers if x % 2 == 0]
print(even_squares)
Produzione:
[0, 4, 16, 36, 64]
Appiattimento di un elenco di elenchi
Se hai una lista di liste e vuoi appiattirla, puoi usare una comprensione di lista:
list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [item for sublist in list_of_lists for item in sublist]
print(flattened)
Produzione:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Esempi avanzati
Applicazione delle funzioni
È possibile applicare funzioni all'interno di una list comprehension. Ad esempio, per convertire un elenco di stringhe in maiuscolo:
words = ['hello', 'world', 'python']
uppercase_words = [word.upper() for word in words]
print(uppercase_words)
Produzione:
['HELLO', 'WORLD', 'PYTHON']
Comprensioni nidificate
Le list comprehension possono essere annidate. Ad esempio, per creare una lista di tuple (i, j) dove i e j sono entrambi elementi di due liste:
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
pairs = [(i, j) for i in list1 for j in list2]
print(pairs)
Produzione:
[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]
Conclusione
Le list comprehension offrono un modo potente e conciso per generare liste in Python. Possono semplificare il tuo codice e renderlo più leggibile sostituendo più righe di codice loop con una singola riga di comprensioni. Fai pratica usando le list comprehension per acquisire maggiore dimestichezza con la loro sintassi e capacità.