Dicţionar Python Comprehension Tutorial

Limbajul de programare Python oferă un set unic de instrumente care fac codarea nu numai distractivă, ci și accelerează progresul tău ca programator. Datorită ușurinței sale de utilizare, Python a devenit limbajul de bază pentru o varietate de industrii, de la dezvoltarea web și știința datelor până la finanțe și nu numai.

Dicţionar Python Comprehension Tutorial

Înțelegerea dicționarului Python este un instrument important care vă permite să generați dicționare dinamic prin iterarea structurilor de date iterabile existente sau a dicționarelor pentru a crea altele noi. Vă puteți gândi la înțelegerea dicționarului ca fiind similară cu înțelegerea listei, dar cu un caz de utilizare ușor diferit.

Pe măsură ce vă familiarizați cu înțelegerile, veți descoperi că acestea pot îmbunătăți semnificativ codul, promovând claritatea și eliminând nevoia de bucle lungi și repetitive.

Dacă sunteți nou în Python , este posibil să nu fi întâlnit înțelegere sau să nu fi folosit-o în codul dvs. Înainte de a pătrunde în sintaxă, să abordăm întrebarea principală: Ce este înțelegerea dicționarului Python?

Cuprins

Ce este Python Dictionary Comprehension?

Python Dictionary Comprehension este o modalitate concisă de a crea dicționare folosind expresii simple. Vă permite să generați noi dicționare fără a fi nevoie să utilizați bucle for.e

Să aruncăm o privire la un exemplu de înțelegere. Să presupunem că aveți două liste, una conținând chei și cealaltă conținând valori:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

Folosind înțelegerea dicționarului, puteți crea un nou dicționar prin iterarea celor două liste și combinând perechile cheie-valoare corespunzătoare:

my_dict = {k: v for k, v in zip(keys, values)}
print(my_dict)

Ieșirea va fi:

{'a': 1, 'b': 2, 'c': 3}

Dicţionar Python Comprehension Tutorial

Exemplul de mai sus ar trebui să dea o idee despre ce sunt înțelegerile în Python . Pentru a vă ajuta și mai mult să consolidați conceptul, să înțelegem sintaxa înțelegerii dicționarului în Python.

Înțelegerea sintaxei înțelegerii dicționarului

Sintaxa pentru înțelegerea dicționarului este simplă, dar puternică. Ele oferă o modalitate concisă de a crea un nou dicționar în Python . De asemenea, ei urmează o sintaxă similară pentru înțelegerea listei, dar folosesc acolade {} și o pereche cheie-valoare separate prin două puncte.

Structura de bază este următoarea:

{key: value for (key, value) in iterable}

În această sintaxă, cheia și valoarea reprezintă expresiile folosite pentru a genera cheile și valorile dicționarului rezultat. Iterabilul furnizează sursa datelor utilizate pentru a crea perechile cheie-valoare.

Această sintaxă a fost introdusă în Python 3 și retroportată până în Python 2.7, asigurând o compatibilitate largă între versiunile Python.

De exemplu, pentru a crea un dicționar care mapează numerele de la 0 la 4 la pătratele lor folosind înțelegerea dicționarului, puteți utiliza următorul cod Python:

square_dict = {x: x**2 for x in range(5)}

Aceasta va avea ca rezultat următorul dicționar:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Dicţionar Python Comprehension Tutorial

Ce se întâmplă dacă ați dori să repetați peste două variabile în același timp? Puteți realiza acest lucru folosind înțelegerea dicționarului cu funcția zip() pentru a crea un dicționar din două iterabile, unul reprezentând cheile și celălalt reprezentând valorile. Iată un exemplu:

keys = ['a', 'b', 'c', 'd', 'e']
values = [1, 2, 3, 4, 5]
my_dict = {k: v for k, v in zip(keys, values)}

Dicționarul rezultat va fi:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

Dicţionar Python Comprehension Tutorial

Înțelegerea dicționarului vă permite, de asemenea, să adăugați o declarație if opțională la sfârșitul înțelegerii pentru a aplica un filtru condiționat pentru elementele incluse.

De exemplu, puteți crea un dicționar cu numai numere pare și pătratele lor folosind înțelegerea dicționarului:

even_square_dict = {x: x**2 for x in range(10) if x % 2 == 0}

Aceasta are ca rezultat:

{0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Dicţionar Python Comprehension Tutorial

Acum că sunteți familiarizat cu sintaxa de înțelegere, să aruncăm o privire la câteva exemple de înțelegere.

Exemple de dicţionar Comprehension

Înțelegerea dicționarului găsește o serie de cazuri de utilizare datorită sintaxei sale puternice și elegante. Ele vă pot economisi timp și vă pot face codul mai lizibil.

Maparea numerelor la pătratele lor

Luați în considerare un exemplu simplu în care doriți să creați un dicționar care mapează numerele cu pătratele lor folosind înțelegerea dicționarului Python:

squares = {x: x**2 for x in range(1, 6)}
print(squares)

Aceasta va scoate:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Codul de mai sus face aceeași treabă ca rularea unei bucle de șase ori și pătrarea fiecărui număr. Codul de mai jos demonstrează rularea unei bucle pentru a lua pătratele numerelor:

squares = {}
for x in range(1, 6):
    squares[x] = x ** 2

print(squares)

În acest moment, s-ar putea să vă întrebați de ce să folosiți înțelegerea când puteți utiliza bucle. În programare, o regulă de bază este să scrieți cod compact și eficient.

De asemenea, puteți aplica condiții pentru înțelegerea dvs. De exemplu, poate doriți să creați un dicționar care să conțină numai numere pare și pătratele lor:

even_squares = {x: x**2 for x in range(1, 6) if x % 2 == 0}
print(even_squares)

Rularea acestui cod va produce un nou dicționar precum următorul:

{2: 4, 4: 16}

Reverse Keys and Values

De asemenea, puteți inversa cu ușurință elementele dicționarului cu înțelegerea dicționarului în Python.

Următorul cod demonstrează cum să inversați cheile și valorile unui dicționar existent folosind înțelegerea dicționarului:

original_dict = {"one": 1, "two": 2, "three": 3, "four": 4}
reversed_dict = {v: k for k, v in original_dict.items()}
print(reversed_dict)

Înțelegerea dicționarului de mai sus (sau înțelegerea dictelor) va imprima următoarele:

{1: 'one', 2: 'two', 3: 'three', 4: 'four'}

Dicţionar Python Comprehension Tutorial

Pentru a înțelege bine ce sunt dicționarele și cum le puteți utiliza pentru diferite cazuri, vă rugăm să consultați videoclipul de mai jos:

Exemplele oferite servesc ca o bază solidă pentru utilizarea înțelegerii dicționarului în proiectele dvs. Python.

De asemenea, înțelegerea dicționarului poate fi optimizată și mai mult, permițând unei singure linii de cod să realizeze sarcini complexe care ar putea consuma mai mult timp și memorie cu bucle.

3 Avantajele majore ale înțelegerii dicționarului

Ați experimentat eleganța înțelegerii dicționarului prin exemplele oferite. În afară de lizibilitate, înțelegerile oferă mai multe avantaje, inclusiv eficiență, atunci când lucrați cu structura eficientă a tabelului hash cheie/valoare a Python, numită înțelegere dict .

1. Crearea unui cod clar și simplu

Înțelegerile vă permit să creați noi dicționare fără efort și într-un mod ușor de citit. Îți fac codul să arate și să se simtă mai Pythonic în comparație cu buclele tradiționale.

2. Performanță mai bună cu stil

Înțelegerile nu sunt doar elegante, ci și eficiente. Ele funcționează adesea mai repede decât buclele for, deoarece folosesc o singură expresie. Python optimizează acest tip de cod, eliminând necesitatea apelării repetate a constructorului dicționarului sau a utilizării metodei update().

3. Filtrare ușoară și transformare a datelor

Un alt avantaj al înțelegerii dicționarului este simplitatea sa în filtrarea și transformarea datelor. De exemplu, puteți crea un nou dicționar dintr-unul existent, aplicând o condiție sau modificând cheile sau valorile.

Este esențial să înțelegeți când să folosiți înțelegerea dicționarului în Python, deoarece acestea pot deveni rapid complexe și mai greu de citit și scris. Acum, să explorăm câteva cazuri de utilizare pentru înțelegerea dicționarului în Python.

3 exemple de când să folosiți înțelegerea dicționarului

Înțelegerile sunt utile în următoarele 3 scenarii:

1. Când creați un dicționar din două liste

{key:value for key, value in zip(list1, list2)}

2. Când filtrați un dicționar în funcție de valoare

{k: v for k, v in original_dict.items() if v > threshold}

3. La transformarea cheilor sau a valorilor

{k.upper(): v * 2 for k, v in original_dict.items()}

Este important să rețineți că, în timp ce înțelegerile vă pot face codul mai elegant și mai eficient, ele pot deveni și greu de citit dacă sunt prea complexe.

Să ne uităm la unele dintre cele mai comune capcane atunci când folosiți înțelegerile din dicționar.

Capcanele înțelegerii dicționarului

Înțelegerea dicționarului aduc eleganță și eficiență, dar vine și cu provocări. Vom discuta capcanele comune legate de lizibilitate, complexitate și performanță cu seturi mari de date.

Echilibrarea complexității și lizibilității

Înțelegerile complexe ale dicționarului pot fi dificil de citit. Prioritizează lizibilitatea codului, mai ales atunci când lucrezi cu alții. În unele cazuri, buclele for tradiționale ar putea fi mai simple și mai ușor de întreținut.

Performanță cu seturi mari de date

Pentru seturi mari de date, înțelegerea dicționarului poate să nu fie întotdeauna optimă. Conform Stack Overflow , un constructor dict() încorporat poate depăși înțelegerea dicționarului cu numeroase perechi cheie-valoare datorită buclei în C.

Comparație cu alte metode

În această secțiune, vom compara înțelegerea dicționarului cu două metode alternative de a crea dicționare în Python: pentru bucle și funcții lambda.

Pentru Loop

Utilizarea unei bucle for pentru a crea un dicționar implică inițializarea unui dicționar gol și apoi iterarea prin perechea cheie-valoare validă dorită, adăugând fiecare pereche la dicționar. Aceasta este o metodă mai detaliată în comparație cu înțelegerea dicționarului.

Următorul este un exemplu de creare a dicționarului folosind bucle for:

dictionary = {}
for key, value in zip(keys, values):
    dictionary[key] = value

În schimb, o înțelegere a dicționarului vă permite să obțineți același rezultat într-o singură linie:

dictionary = {key: value for key, value in zip(keys, values)}

Dicţionar Python Comprehension Tutorial

După cum puteți vedea, înțelegerile oferă o modalitate concisă și mai lizibilă de a crea dicționare în Python.

Funcții Lambda

Putem folosi și funcții Lambda pentru a crea dicționare. Funcțiile Lambda sunt o modalitate de a crea funcții mici, anonime în Python. Ele pot fi folosite împreună cu funcția map() pentru a crea un dicționar.

Să ne uităm la un exemplu de funcții Lambda pentru a crea dicționare:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

key_value_pairs = map(lambda key, value: (key, value), keys, values)
dictionary = dict(key_value_pairs)

Prin comparație, iată cum poate fi creat același dicționar folosind înțelegerea:

dictionary = {key: value for key, value in zip(keys, values)}

Dicţionar Python Comprehension Tutorial

Din nou, înțelegerea dicționarului oferă o alternativă concisă și mai lizibilă la crearea dicționarelor folosind funcții lambda și funcția map().

Cele mai bune practici pentru înțelegerea dicționarului

Când utilizați înțelegeri în Python, este esențial să urmați cele mai bune practici pentru a îmbunătăți lizibilitatea, mentenabilitatea și eficiența. Iată câteva dintre cele mai bune practici de luat în considerare:

1. Păstrați înțelegerea dicționarului simplă

Înțelegerea dicționarului este puternică, dar ar trebui să fie clară și concisă. Dacă înțelegerea dvs. devine prea complexă sau se întinde pe mai multe linii, luați în considerare utilizarea unei bucle for tradiționale. Acest lucru ajută la înțelegerea codului, în special pentru alții sau atunci când vă revedeți munca mai târziu.

2. Utilizați funcțiile încorporate

Python oferă funcții încorporate precum zip() și enumerate() care ajută la crearea de înțelegeri. Utilizați aceste funcții pentru a vă simplifica codul și pentru a-l face mai lizibil.

De exemplu, utilizarea zip() pentru a combina două liste și a crea un dicționar are ca rezultat un cod concis și curat, astfel:

{key: value for key, value in zip(keys, values)}

3. Folosește cu înțelepciune enunțurile condiționale

Încorporați enunțuri condiționate în înțelegerile dvs. atunci când este necesar, dar nu le folosiți în exces. Ele pot ajuta la filtrarea sau modificarea dicționarului rezultat, dar prea multe condiții imbricate pot face codul greu de citit. Un exemplu simplu care implică o declarație condiționată este:

{x: x**2 for x in range(10) if x % 2 == 0}

4. Fii atent la înțelegerea dicționarului imbricat

Înțelegerea dicționarului imbricat poate genera dicționare cu structuri imbricate. Cu toate acestea, ca și declarațiile condiționate, un exces de dicționar imbricat poate face codul mai greu de descifrat. Evitați să treceți dincolo de două niveluri de imbricare în înțelegerea dicționarului dvs. imbricat.

Uneori, ar putea fi necesar să utilizați înțelegerea dicționarului imbricat în bucle pentru a obține eficiența dorită.

Cuvântul nostru final

Până acum, ați stăpânit înțelegerea dicționarului în Python. Această tehnică elegantă și eficientă ajută la crearea dicționarelor prin iterarea peste iterabile sau prin utilizarea condițiilor. Înțelegerile vă simplifică codul, sporind lizibilitatea și mentenabilitatea.

Crearea de noi dicționare este ușor de înțeles, economisind timp și efort în comparație cu buclele tradiționale. Sunt utile în aplicațiile din lumea reală, cum ar fi procesarea datelor, cartografierea și transformarea.

Dacă doriți să vă îmbunătățiți cunoștințele Python și să deveniți un adevărat profesionist, la cursul nostru Python și vedeți cum creăm cei mai buni utilizatori Python din lume.

Leave a Comment

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți