Foglio informativo sulla comprensione di Python

Scrivi elenchi concisi e leggibili, dizionari, set e comprensioni di generatori in Python.

Elenca e imposta le comprensioni

Creazione di sequenze e set in linea utilizzando sugar loop sintattici.

Metodo/FunzioneSintassiDescrizione
List Comprehension[x * 2 for x in my_list]Costruisce un nuovo elenco applicando espressioni sugli elementi di un iterabile.
Conditional List[x for x in my_list if x > 0]Applica un predicato di filtro, mantenendo solo gli elementi che soddisfano la condizione.
Nested Loops[x + y for x in list1 for y in list2]Appiattisce le operazioni nidificate. Esegue cicli interni per ogni iterazione del ciclo esterno.
Set Comprehension{x for x in my_list}Genera un set, applicando automaticamente la deduplicazione.

Comprensioni del dizionario e del generatore

Generazione di mappature e flussi di valutazione pigra in linea.

Metodo/FunzioneSintassiDescrizione
Dict Comprehension{k: v for k, v in pairs}Costruisce un dizionario in linea.
Conditional Dict{k: v for k, v in pairs if k is not None}Costruisce un dizionario ignorando i valori indesiderati.
Generator Expression(x ** 2 for x in range(10))Restituisce un oggetto iteratore generatore lento. Valuta gli elementi uno alla volta per risparmiare memoria.

Script dimostrativo interattivo

run_all_cheat_methods.py
Esegui nell'editor
# List Comprehension
[x * 2 for x in my_list]

# Conditional List
[x for x in my_list if x > 0]

# Nested Loops
[x + y for x in list1 for y in list2]

# Set Comprehension
{x for x in my_list}

# Dict Comprehension
{k: v for k, v in pairs}

# Conditional Dict
{k: v for k, v in pairs if k is not None}

# Generator Expression
(x ** 2 for x in range(10))

Domande frequenti

Quando dovrei evitare di usare le comprensioni delle liste?

Evita le comprensioni degli elenchi se sono eccessivamente complessi o hanno più cicli annidati, poiché ciò riduce la leggibilità del codice.

Qual è la differenza tra una comprensione di lista e un'espressione di generatore?

Le comprensioni dell'elenco valutano immediatamente e costruiscono l'elenco in memoria, mentre le espressioni del generatore producono elementi pigramente su richiesta, risparmiando memoria.

Argomenti correlati

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.