Questo post è stato reso pubblico come parte del Blogathon sulla scienza dei dati
introduzione
In questo post, studieremo le liste per comprensione Python e come usarle. Gli argomenti che tratteremo in questo post sono i seguenti:
- Qual è la differenza tra List Comprehension e For loop in Python??
- Sintassi delle comprensioni di lista in Python
- Differenza tra le funzioni Lambda e la comprensione delle liste
- Condizionali all'interno della comprensione delle liste
- Cicli nidificati all'interno dell'elenco delle comprensioni in Python
- Punti chiave sulla comprensione delle liste
- Altri esempi di comprensione delle liste
Fonte immagine: Google Immagini
Qual è la differenza tra la comprensione delle liste e il ciclo for in Python??
Supponiamo di voler separare le lettere della parola “analisi” e aggiungi le lettere come elementi da un elenco. La cosa principale che mi viene in mente sarebbe usare for loop.
Esempio 1: usando il ciclo For per scorrere una stringa
lettere_separate = [] per lettera in 'analisi': lettere_separate.append(lettera) Stampa(lettere_separate)
Produzione:
[ 'un', 'n', 'un', 'l', 'e', 'T', 'io', 'C', 'S' ]
Spiegazione del codice:
In questo esempio, divideremo la stringa in base ai caratteri e memorizzeremo tutti quei caratteri in un nuovo elenco.
Nonostante questo, Python ha un modo migliore per risolvere questo problema usando List Comprehension. La comprensione delle liste è un modo sublime per stabilire e creare liste basate su liste esistenti..
Vediamo come il programma sopra può essere scritto usando le liste di comprensione.
Esempio 2: usando la comprensione delle liste per scorrere una stringa
lettere_separate = [ lettera per lettera in "analisi" ] Stampa( lettere_separate)
Produzione:
[ 'un', 'n', 'un', 'l', 'e', 'T', 'io', 'C', 'S' ]
Spiegazione del codice:
Nell'esempio sopra, viene assegnato un nuovo elenco alle variabili separate da lettera, e l'elenco contiene le cose della stringa iterabile "analisi". Finire, per ricevere l'uscita, chiamiamo il Stampa() funzione pitone.
Sintassi per la comprensione delle liste
[espressione per elemento nell'elenco]
Ora, possiamo identificare dove vengono utilizzate le liste comprendendo.
Se si è reso conto, “analisi” potrebbe essere una stringa, non una lista. Queste sono spesso le liste di facile comprensione. Puoi identificare quando ricevi una stringa o una tupla e lavorarci sopra come una lista.
Puoi testarlo usando i loop. Nonostante questo, non tutti i loop possono essere riscritti come una lista di comprensione. Pero a misuraIl "misura" È un concetto fondamentale in diverse discipline, che si riferisce al processo di quantificazione delle caratteristiche o delle grandezze degli oggetti, fenomeni o situazioni. In matematica, Utilizzato per determinare le lunghezze, Aree e volumi, mentre nelle scienze sociali può riferirsi alla valutazione di variabili qualitative e quantitative. L'accuratezza della misurazione è fondamentale per ottenere risultati affidabili e validi in qualsiasi ricerca o applicazione pratica.... que aprenda y se sienta cómodo con las listas por comprensión, finirai per sostituire sempre più loop con questa sintassi fantasiosa.
Elenco delle intese rispetto alle funzioni Lambda
Per lavorare o eseguire operazioni con le liste, le liste di comprensione non sono l'unico modo, ma vari strumenti integrati e funzioni lambda possono creare e modificare elenchi in meno righe di codice.
Esempio 3: utilizzando le funzioni Lambda all'interno di List
lettere = lista(carta geografica(lambda e: e, 'analisi')) Stampa(lettere)
Produzione:
[ 'un', 'n', 'un', 'l', 'e', 'T', 'io', 'C', 'S' ]
Spiegazione del codice:
In questo codice, separeremo i caratteri dalla stringa usando le funzioni lambda.
Nonostante questo, generalmente, gli elenchi di comprensione sono più leggibili dall'uomo rispetto alle funzioni lambda. È più facile capire cosa stava cercando di ottenere il programmatore quando utilizzava le liste di comprensione.
Condizionali nella comprensione delle liste
Gli elenchi completi possono utilizzare istruzioni condizionali per modificare gli elenchi esistenti (o altre tuple). creiamo una lista che usi operatori matematici, numeri interi e range ().
Esempio 4: Usa se con la comprensione dell'elenco
lista_pari = [ io per io nel raggio d'azione(10) se io % 2 == 0] Stampa(even_list)
Produzione:
[0, 2, 4, 6, 8]
Spiegazione del codice:
La lista, even_list, sarà completato con cose nella gamma di 0 un 9 se il valore dell'elemento è divisibile per 2.
Esempio 5: annidato sì con la comprensione dell'elenco
lista_filtrata = [ x per x nell'intervallo(50) se x % 2 == 0 se x % 5 == 0] Stampa(lista_filtrata)
Produzione:
[0, 10, 20, 30, 40]
Spiegazione del codice:
Qui, controlli di comprensione delle liste:
È x divisibile per 2 o no?
È x divisibile per 5 o no?
Se x soddisfa entrambe le condizioni, x viene aggiunto a filtered_list.
Esempio 6: Se … altro con la comprensione delle liste
lista = ["anche" se y%2==0 altrimenti "strano" per y nel raggio d'azione(5)] Stampa(elenco)
Produzione:
['anche', 'strano', 'anche', 'strano', 'anche']
Spiegazione del codice:
Qui, la comprensione dell'elenco verificherà i cinque numeri del 0 al 4. Se y è divisibile per 2, par viene aggiunto alla lista obj. Se non è così, dispari è aggiunto.
Cicli nidificati nella comprensione delle liste
Supponiamo di voler calcolare la trasposizione di un array che necessita di un ciclo for annidato. Vediamo come si fa usando prima il normale ciclo for.
Esempio 7: trova matrice trasposta usando cicli annidati
matrice_trasposta = [] matrice = [[1, 2, 3, 4], [4, 5, 6, 8]] per io nel raggio d'azione(len(matrice[0])): riga_trasposta = [] per riga nella matrice: riga_trasposta.append(riga[io]) transposed_matrix.append(riga_trasposta) Stampa(matrice_trasposta)
Produzione:
[[1, 4], [2, 5], [3, 6], [4, 8]]
Spiegazione del codice:
Il codice sopra usa due cicli for per trovare la trasposizione della matrice.
Allo stesso tempo, possiamo fare iterazioni annidate all'interno di una lista di comprensione. In questa sezione, troviamo la trasposizione di una matrice usando un ciclo annidato all'interno di una lista di comprensione.
Esempio 8: Trovare la trasposizione di una matrice attraverso la comprensione delle liste
matrice = [[1, 2], [3,4], [5,6], [7,8]] transpose_matrix = [[riga[io] per riga nella matrice] per io nel raggio d'azione(2)] Stampa (transpose_matrix)
Produzione:
[[1, 3, 5, 7], [2, 4, 6, 8]]
Spiegazione del codice:
Nel programma sopra, tenemos una matriz variabileIn statistica e matematica, un "variabile" è un simbolo che rappresenta un valore che può cambiare o variare. Esistono diversi tipi di variabili, e qualitativo, che descrivono caratteristiche non numeriche, e quantitativo, che rappresentano quantità numeriche. Le variabili sono fondamentali negli esperimenti e negli studi, poiché consentono l'analisi delle relazioni e dei modelli tra elementi diversi, facilitare la comprensione di fenomeni complessi.... che cosa c'è che non va 4 righe e un paio di colonne. Dobbiamo trovare la trasposta della matrice. Per quello, usiamo la comprensione delle liste.
Punti chiave nella comprensione delle liste
I punti chiave a cui prestare attenzione quando si lavora con la comprensione degli elenchi sono i seguenti:
- La comprensione delle liste è un sublime camino per stabilire e costruire liste con l'aiuto di liste esistenti.
- Rispetto ai normali cicli e funzioni, comprensione delle liste Di solito è più compatto e veloce per creare liste.
- Nonostante questo, dovremmo sempre Evita di scrivere elenchi completi molto lunghi su una riga. per confermare quel codice è facile da usare.
- Ricordare, ogni lista di comprensione è riscritto in for loop, ma tutti i cicli for non possono essere riscritti entro più o meno comprensione delle liste.
Altri esempi di comprensione dell'elenco
Diamo un'occhiata ad altri esempi relativi alla comprensione delle liste in modo da avere una migliore comprensione delle comprensioni delle liste in Python.
Esempio 9: Trova gli elementi in un elenco in cui gli elementi terminano con la lettera 'b’ e la lunghezza di quell'elemento è maggiore di 2
nomi = ['Ch','Dh',"Ehi",'cb','Tb','Td','Chb','Tdb'] nomi_finali = [nome per nome nei nomi se nome.inferiore().finisce con('B') e len(nome) > 2] nomi_finali
Produzione:
['Chb', 'Tdb']
Spiegazione del codice:
Nel codice sopra, usiamo la comprensione delle liste con alcune condizioni associate. Le funzioni coinvolte nelle condizioni sono le seguenti:
- Nome. estremità.inferiorecon ('B'): Questa funzione filtra tutte le stringhe nell'elenco che terminano con le lettere 'b’ o 'B'.
- len (Nome): Questa funzione trova la lunghezza di tutti gli elementi in un elenco specificato.
Esempio 10: invertire ogni stringa in una tupla
# Inverti ogni elemento in una tupla specificata Lista = [corda[::-1] per stringa in ('Ciao', "Analisi", 'Vidhya')] # Visualizza l'elenco Stampa(Elenco)
Produzione:
[ 'olleH', 'scitylanA', 'ayhdiV' ]
Spiegazione del codice:
Nel codice sopra, usiamo il concetto di tagliare in una catena, perché, quando si usa str[::-1] funzione, possiamo invertire gli elementi di una stringa, e applichiamo questa funzione a ciascun elemento della tupla usando la comprensione delle liste.
Questo conclude la nostra discussione!!
Note finali
Spero che il post ti sia piaciuto.
Se vuoi connetterti con me, Non dubitare di restare in contatto con me. di E-mail.
I vostri suggerimenti e dubbi sono i benvenuti qui nella sezione commenti. Grazie per aver letto il mio post!!
Il supporto mostrato in questo post non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.