Introduzione alle comprensioni dell'elenco Python

Le comprensioni forniscono un modo semplice e breve per costruire nuove sequenze usando sequenze già definite in Python. Queste sequenze possono essere Elenchi, Set, Dizionari, ecc. La comprensione delle liste è una delle preziose funzionalità di Python. In breve, Comprensioni elenco offre un modo per creare nuovi elenchi basati su elenchi esistenti. In altre parole, Comprensioni elenco è un modo semplice per creare un elenco basato su alcuni iterabili. Qui, un iterabile è tutto ciò che può essere utilizzato per il loop over. Comprensioni elenco consentono di utilizzare una sintassi alternativa per la creazione di elenchi e qualsiasi altro tipo di dati sequenziale in Python. Vedremo in seguito come sono utili. Esistono 3 componenti di Comprensione elenco, questi sono:

  • Espressione di output: questa è facoltativa e può essere ignorata.
  • Iterable.
  • Una variabile che rappresenta i membri dell'iterabile, è spesso chiamata variabile Iteratore.

Sintassi ed esempi:

In Python, possiamo creare Comprensioni elenco usando la sintassi seguente:

list_variable = (x for x in iterable)

Come puoi vedere in Comprensioni elenco, un elenco viene assegnato a una variabile. Diamo un'occhiata a un esempio, in primo luogo, possiamo considerare un metodo per trovare il quadrato di un numero usando un ciclo:

Codice:

numbers = (2, 5, 3, 7) square = () for n in numbers:
square.append(n**2)
print(square)

Produzione:

Ora, consideriamo di fare lo stesso, ma usando Elenco Comprensioni invece di un ciclo:

Codice:

numbers = (2, 5, 3, 7) square = (n**2 for n in numbers) print(square)

Produzione:

Qui puoi vedere che le parentesi quadre “()” sono usate per indicare che l'output dell'espressione al loro interno è un elenco.

Comprensioni elenco e funzioni Lambda

Dovresti tenere presente che la comprensione degli elenchi non è l'unico modo di creare elenchi, Python ha molte funzioni integrate e funzioni lambda che possono essere utilizzate, come:

Codice:

letters = list(map(lambda x: x, 'human'))
print(letters)

Produzione:

Sebbene ciò funzioni in molti casi, le Comprensioni elenco sono più leggibili e più facili da comprendere da parte di chi non è il programmatore del codice.

Aggiunta di condizionali nelle comprensioni dell'elenco

Sei libero di utilizzare qualsiasi condizione necessaria all'interno di una comprensione dell'elenco per modificare l'elenco esistente. Diamo un'occhiata a un esempio che utilizza i condizionali:

Codice:

numbers_list = ( x for x in range(20) if x % 2 == 0) print(numbers_list)

Produzione:

Ecco un altro esempio:

Codice:

numbers_list = (x for x in range(100) if x % 2 == 0 if x % 5 == 0) print(numbers_list)

Produzione:

Utilizzo di cicli nidificati nelle comprensioni dell'elenco

Se necessario, possiamo usare i loop nidificati nella comprensione dell'elenco, diamo un'occhiata a come possiamo usare i loop nidificati in questo modo trovando il recepimento di una matrice:

Codice:

transposedmatrix = () matrix = ((1, 2, 3, 4), (4, 5, 6, 8)) for i in range(len(matrix (0))):
transposedmatrix_row = () for row in matrix:
transposedmatrix_row.append(row(i))
transposedmatrix.append(transposedmatrix_row)
print(transposedmatrix)

Produzione:

Esempi di comprensioni di elenchi Python

Di seguito sono riportati gli esempi di Comprensioni elenco Python:

Esempio n. 1 - Rimozione delle vocali da una determinata frase

Codice:

def eg_for(sentence):
vowels = 'aeiou'
filter_list = () for l in sentence:
if l not in vowels:
filter_list.append(l)
return ''.join(filter_list)
def eg_lc(sentence):
vowels = 'aeiou'
return ''.join(( X for X in sentence if X not in vowels))
Now, let's define the matrix, run the program and then check-out the results:
sentence = "hello from the other side"
print ("loop result: " + eg_for(sentence))
print ("LC result: " + eg_lc(sentence))

Produzione:

Esempio n. 2 - Mappatura dei nomi dei paesi con le loro capitali

Codice:

country = ( 'India', 'Italy', 'Japan' ) capital = ( 'Delhi', 'Rome', 'Tokyo' ) output_dict = ()
# Using loop for constructing dictionary
for (key, value) in zip(country, capital):
output_dict(key) = value
print("Output Dictionary using for loop:", output_dict)

Produzione:

Vantaggi della comprensione delle liste Python

Si potrebbe pensare che se i loop possono essere usati per fare quasi tutto ciò che la comprensione dell'elenco fa, perché usarli in primo luogo? Bene, la risposta è veloce e il tempo necessario per completare l'attività e la quantità di memoria necessaria. Quando viene fatta una comprensione dell'elenco, stiamo già riducendo 3 linee di codice in una e quando viene fatto, il codice è molto più veloce di quanto faccia una comprensione dell'elenco, python alloca prima la memoria per l'elenco e quindi aggiunge elementi al suo interno. inoltre, è senza dubbio un modo più elegante e sofisticato di creare elenchi basati su elenchi preesistenti.

Conclusione

Ora che abbiamo avuto qualche esperienza con la comprensione degli elenchi, è facile capire come questi ci consentano di trasformare un elenco in un nuovo elenco. Questi hanno una sintassi semplice che limita la quantità di lavoro necessaria per creare un elenco. Considerando che la sintassi e la struttura della comprensione degli elenchi è fondamentalmente come una notazione di set-builder, questi diventano rapidamente una seconda natura per i programmatori e assicurano che una volta che il codice sarà consegnato a un'altra persona su cui mantenere ed espandersi, sarà facile da capire e lavorare con.

Articolo raccomandato

Questa è una guida a List Comprehensions Python. Qui discutiamo la comprensione degli elenchi e le funzioni lambda insieme all'implementazione e all'output del codice. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Distruttore in Python con vantaggi
  2. Do While Loop in Python con Flowchart
  3. Array di stringhe in Python con metodi
  4. Che cos'è AWS Lambda Layers?
  5. Tipi di dati PL / SQL
  6. Array di stringhe in JavaScript
  7. Diversi tipi di dati SQL con esempi
  8. Guida completa alla matrice di stringhe

Categoria: