Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
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.
Î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}
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}
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}
Î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}
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'}
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)}
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)}
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.
Ce este Sinele în Python: Exemple din lumea reală
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.
Î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.
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.
Î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.
Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.
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.
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.
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