Piton

Listează înțelegeri în Python

Listează înțelegeri în Python
Înțelegerile listei sunt adesea folosite în Python pentru a scrie instrucțiuni cu o singură linie care creează o listă nouă sau un dicționar prin looping peste un obiect iterabil. Acest articol va explica modul de utilizare a înțelegerilor de listă în Python, începând cu o explicație de bază despre cum funcționează buclele în Python.

Pentru Buclă în Python

O instrucțiune pentru buclă în Python iterează secvențial peste membrii oricărui obiect, listă, șir etc. Comparativ cu alte limbaje de programare, sintaxa sa este mult mai curată și nu necesită definirea manuală a pașilor de iterație și pornirea iterației. Deși există modalități de a face comportamentul său la fel ca și alte limbaje de programare (nu vor fi tratate în acest articol). De asemenea, puteți exercita un anumit control asupra buclelor folosind instrucțiuni precum continue, break, pass etc. Mai jos este un exemplu simplu de buclă for în Python:

pentru x în intervalul (10):
print (x)

Bucla for de mai sus va imprima zece numere începând de la 0 și terminând la 9.

Listă Înțelegeri

Înțelegerea listei nu este altceva decât un mod scurt / concis de a scrie mai multe linii pentru bucle într-o declarație cu o singură linie. Exemplul de înțelegere a listei de mai jos va crea o nouă listă ca [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] prin includerea tuturor valorilor „x” în ea.

numere = [x pentru x în intervalul (10)]
print (numere)

Rețineți că înțelegerea listei creează întotdeauna o listă nouă și nu modifică iterabilele originale utilizate în expresie. O expresie tipică de înțelegere a listei trebuie să aibă o clauză „pentru” și poate fi urmată de afirmații condiționale „dacă” și „altfel”. Fără a utiliza o listă de înțelegere, exemplul de mai sus va fi scris în modul următor:

numere = []
pentru x în intervalul (10):
numere.anexa (x)
tipar (numere)

Performanță și lizibilitate

Înțelegerile listei sunt mai rapide decât pentru bucle. Cu toate acestea, dacă nu iterați peste sute de mii de articole, nu veți observa îmbunătățiri majore ale performanței. În timp ce înțelegerea listei oferă o modalitate concisă de a scrie pentru bucle, expresiile complexe pot duce la o citire slabă a codului și la o verbozitate crescută. Este important să păstrați codul lizibil, cu excepția cazului în care obținerea performanței maxime este o necesitate absolută pentru programul dvs.

Exemplu: Utilizarea sintaxei List Comprehensions cu dicționare și seturi

Un dicționar Python este o colecție de elemente definite în perechi cheie-valoare în timp ce un set este o colecție de valori unice în care duplicatele nu sunt permise. Înțelegerile listei pot fi folosite și cu dicționarele și seturile Python. Sintaxa diferă ușor, în loc să înfășurați expresia cu acolade pătrate, va trebui acum să utilizați acolade. De asemenea, veți obține un nou dicționar / obiect set în loc de o listă nouă.

data = "city": "new york", "name": "john doe"
formatate_date = k: v.title () pentru k, v în date.articole ()
print (date_formatate)

Exemplul de mai sus va converti valorile șirurilor în majuscule și va crea un nou dicționar numit „formatted_data”, a cărui ieșire va fi: 'city': 'New York', 'name': 'John Doe'. De asemenea, puteți schimba dicționarul / setul în loc specificând variabila de dicționar existentă în partea stângă.

data = "city": "new york", "name": "john doe"
date = k: v.title () pentru k, v în date.articole ()
print (date)

Fără a utiliza înțelegeri de dicționar, codul ar arăta astfel:

data = "city": "new york", "name": "john doe"
formatate_date =
pentru k, v în date.articole ():
formatate_date [k] = v.titlu()
print (date_formatate)

Deoarece nu există perechi cheie-valoare în seturi, o înțelegere a setului poate fi definită în același mod ca o înțelegere a listei. Singura diferență este utilizarea aparatelor dentare.

Exemplu: Multiple pentru bucle într-o listă de înțelegere

Exemplul de înțelegere a listei menționat mai sus este de bază și folosește o singură declarație „pentru”. Mai jos este un exemplu care folosește multiple pentru bucle și o declarație condițională „dacă”.

adjective = ["Disco", "Eoan", "Focal", "Artful"]
animals = ["Dingo", "Ermine", "Fossa", "Beaver"]
nume de cod = [x + "" + y pentru x în adjectivele pentru y la animale dacă y.începe cu (x [0])]
print (nume de cod)

Codul va afișa ['Disco Dingo', 'Eoan Ermine', 'Focal Fossa'] ca ieșire. Cele două bucle trec peste listele „adjective” și „animale”, iar membrii lor sunt uniți folosind un spațiu, numai dacă prima literă a ambelor cuvinte este aceeași. Fără a utiliza înțelegeri de listă, codul ar arăta astfel:

adjective = ["Disco", "Eoan", "Focal", "Artful"]
animals = ["Dingo", "Ermine", "Fossa", "Beaver"]
nume de cod = []
pentru x în adjective:
pentru y la animale:
daca eu.începe cu (x [0]):
nume de cod.adăugați (x + "" + y)
print (nume de cod)

Exemplu: Înțelegerea listei cu clauza if-else

Exemplul de mai jos va arăta utilizarea afirmațiilor if și else în înțelegerile listei.

number_list = [1, 2, 3, 4]
another_list = [5, 6, 7, 8]
result = [Adevărat dacă (x + y)% 2 == 0 altfel Fals pentru x în number_list pentru y în another_list]
print (rezultat)

În timp ce parcurge două liste, înțelegerea listei de mai sus verifică dacă suma perechii de elemente este pară sau nu. Rularea codului de mai sus vă va arăta [True, False, True, False, False, True, False, True, True, False, True, False, False, True, False, True] ca ieșire. Fără a utiliza înțelegerea listei, codul ar arăta astfel:

number_list = [1, 2, 3, 4]
another_list = [5, 6, 7, 8]
rezultat = []
pentru x în number_list:
pentru y în altă listă_:
dacă (x + y)% 2 == 0:
rezultat.adăuga (Adevărat)
altceva:
rezultat.anexa (Fals)
print (rezultat)

Concluzie

Înțelegerile listei oferă un mod frumos de a scrie instrucțiuni de buclă curate și concise. Cu toate acestea, pot deveni rapid complexe și dificil de înțeles dacă sunt utilizate mai multe bucle și declarații condiționale. În cele din urmă, ajunge la nivelul de confort al unui programator, dar, în general, este o idee bună să scrieți coduri explicite, lizibile și ușor de depanat în loc să folosiți în mod excesiv stenogramele.

Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...