Python Dicționar Cum îl puteți folosi pentru a scrie un cod mai bun

Python Dicționar Cum îl puteți folosi pentru a scrie un cod mai bun / Programare

Un dicționar python este o structură de date similară unei matrice asociative găsită în alte limbi de programare. O matrice sau o listă indexează elementele după poziție. Un dicționar, pe de altă parte, indexează elemente prin chei care pot fi șiruri de caractere. Gândiți-vă la un dicționar ca seturi neordonate valoare cheie perechi.

În acest articol, vă prezentăm lucrul cu dicționarul Python.

Crearea unui dicționar

Există mai multe moduri de a crea un dicționar python. Cel mai simplu foloseste initializarea brezelor, cu o sintaxa care aminteste de JSON Cum sa obtineti Python si JavaScript pentru a comunica folosind JSON Cum sa obtineti Python si JavaScript pentru a comunica folosind JSON Astazi va voi arata cum sa folositi JSON pentru a trimite date de la JavaScript la Python . Voi descrie cum să configurați un server web, împreună cu codul de care aveți nevoie. Citeste mai mult .

utilizatori = 'firstname': 'John', 'lastname': 'Smith', 'vârstă': 27 

Puteți utiliza și cifrele ca și tastele. Cu toate acestea, aveți grijă să utilizați numerele cu puncte variabile ca chei, deoarece calculatorul le stochează ca aproximații Tot ce trebuie să știți despre administrarea RAM și a memoriei Tot ce trebuie să știți despre memoria RAM și memorie RAM este memoria pe termen scurt a computerului. Prin urmare, managementul memoriei are un impact semnificativ asupra performanței sistemului. Aici explicăm cum funcționează RAM-ul și dacă puteți face orice pentru a crește eficiența acestuia. Citeste mai mult .

(1980: '17% ', 1981: '15%', 1982: "1980", 1981: '15% ', 1982: '10%' print_ rain_percent = '10% ' 17% 

Specificarea perechilor cheie-valoare

De asemenea, puteți să creați și să inițializați un dicționar folosind perechi de valori de nume ca argumente ale cuvintelor cheie dict () constructor.

(California = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) tipăriți populația # prints 'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, Colorado: 5029196 

Tablou de chei de valoare cheie

Totuși, un alt mod de a crea un dicționar este să folosiți o serie de nopți cheie-valoare. Iată același exemplu ca mai sus.

pairs = [(California ', 37253956), (' Colorado ', 5029196), (Connecticut, 3574097), (' Delaware ', 897934) 3574097, "Delaware": 897934, 'California': 37253956, 'Colorado': 5029196 

Dict înțelegere

Interpretarea Dict oferă o sintaxă rece pentru a inițializa un dict dacă puteți calcula valorile bazate pe chei. Următoarele inițializează un dict de numere și valori pătrate pentru un interval de numere.

tipăriți x: x ** 2 pentru x în xrange (10, 20) # imprimări 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256,17 : 289, 18: 324, 19: 361 

Cum functioneazã? Ultima parte (pentru x în xrange (10, 20)) returnează un interval de numere în intervalul specificat. Partea de comprehensiune dict (x: x ** 2 ...) bifează acest interval și inițiază dicționarul.

Lucrul cu un dicționar Python

Ce puteți face cu dicționarele odată ce le-ați creat? Puteți accesa elemente, actualiza valori, șterge elemente etc..

Accesarea elementelor de dicționar Python

Accesați un element al unui dicționar care utilizează cheia în paranteze, așa cum ar fi un array sau o listă Cum funcționează matricele și listele în Python Cum funcționează matricele și listele în Python Arrays și liste sunt unele dintre cele mai utile structuri de date în programare - deși puțini oameni le folosesc la întregul lor potențial. Citeste mai mult .

print populație ['Delaware'] # prints 897934 

Dacă cheia este un număr, nu aveți nevoie de cotații. Apoi, expresia pare să pară o indexare a unei liste sau a unei matrice.

print rain_percent [1980] # printuri 17% 

Tipul cheii când se accesează trebuie să se potrivească cu ceea ce este stocat în dicționarul Python. Următoarele cauzează o eroare, deoarece cheile stocate sunt numere în timp ce cheia de acces este un șir.

x = '1980' print rain_percent [x] # rezultate în 1 x = '1980' ----> 2 print rain_percent [x] KeyError: '1980' 

Accesarea unei chei inexistente este o eroare.

rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' print rain_percent [1983] # prints 1 ploaie_percent = 1980: '17%', 1981: '15% ', 1982 : '10% ' ----> 2 print rain_percent [1983] KeyError: 1983 

Pentru a accesa o cheie și a furniza o valoare implicită dacă maparea nu există, utilizați obține() cu valoarea implicită ca al doilea argument.

print rain_percent.get (1985, '0%') # printuri 0% 

Verificarea existenței

Ce se întâmplă dacă doriți să verificați prezența unei chei fără a încerca să o accesați (și, eventual, să întâlniți a KeyError ca mai sus)? Puteți utiliza funcția în cuvânt cheie în formular cheie în dct care returnează un boolean.

print 1980 in rain_percent print '1980' in rain_percent # prints True False 

Inversați condiția (adică asigurați-vă că cheia nu este prezentă în dicționarul Python) utilizând formularul cheie nu în dct. Aceasta este echivalentă cu negarea python standard nu este cheia în dct.

print 1980 nu in rain_percent print 1985 nu in rain_percent # prints False True 

Modificarea elementelor

Schimbați valoarea atribuind-o cheii necesare.

utilizatori = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users ['age'] = 29 print users # prints 'lastname': 'Smith' 29, 'firstname': 'John' 

Utilizați aceeași sintaxă pentru a adăuga o nouă cartografiere în dicționarul Python.

utilizatori de imprimare # prints 'dob': '15 -sep-1971 ',' lastname ':' Smith ',' age ' Ioan' 

Actualizați mai multe elemente ale unui dicționar într - o singură fotografie folosind Actualizați() metodă.

utilizatori = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.update ('age': 29, ' utilizatori # tipărite 'dob': '15 -sep-1971 ',' nume de familie ':' Smith ',' vârstă ': 29,' firstname ':' John ' 

Setați o valoare implicită pentru o cheie utilizând setdefault (). Această metodă stabilește valoarea pentru cheie dacă maparea nu există. Returnează valoarea curentă.

# nu schimbă valoarea curentă print users.setdefault ('firstname', 'Jane') # imprimă John # stabilește valoarea print users.setdefault ('city', 'NY') # prints NY # nume ":" Smith "," vârstă ": 27," nume ":" John "," oraș ":" NY " 

Ștergerea elementelor

Ștergeți mapările din dicționar utilizând butonul del operator. Acest operator nu returnează nimic.

Veți întâlni a KeyError dacă cheia nu există în dicționar.

utilizatori = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 del users ['age'] print users # prints 'lastname' Ioan' 

Folosește pop () în schimb, atunci când doriți să reveniți la valoarea ștersă.

utilizatorii = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 print users.pop ('age') print users # prints 27  ':' John ' 

Ce se întâmplă dacă doriți să ștergeți o cheie dacă aceasta există, fără a provoca o eroare dacă nu o face? Poți să folosești pop () și specificați Nici unul pentru al doilea argument, după cum urmează:

utilizatori = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.pop ('foo', None) ': 27,' firstname ':' John ' 

Și aici este un singur liner pentru a șterge o grămadă de chei dintr-un dicționar fără a provoca o eroare pe cheile inexistente.

utilizatorii = 'firstname': 'John', 'lastname': 'Smith', 'age': 27, 'dob': '15-sep-1971 ' map (lambda x: , ['age', 'foo', 'dob']) tipăriți utilizatorii 

Doriți să ștergeți toate cheile dintr-un dicționar? Folosește clar() metodă.

utilizatorii = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.clear () 

Acoperire cu dicționarele Python

Python oferă mai multe metode pentru looping Cum funcționează în timp ce lucrează în programarea calculatoarelor Cum funcționează în timp ce circuitele lucrează în programarea calculatoarelor Buclele sunt unul dintre primele tipuri de control pe care le veți învăța în programare. Probabil știți despre timp și pentru bucle, dar ce realizează o buclă de timp? Citiți mai multe despre intrările unui dicționar. Alegeți unul pentru a vă potrivi nevoilor.

Înainte de chei

  • Cea mai simplă metodă de procesare a tastelor (și eventual a valorilor) în secvență utilizează o buclă a formularului:
    utilizatorii = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 pentru k în utilizatori: print k, '=>' > 27 nume => John 
  • Utilizarea metodei iterkeys () funcționează exact la fel ca mai sus. Alegeți formularul pe care doriți să îl utilizați.
    user = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 pentru k în users.iterkeys > Vârsta Smith => 27 nume => John 
  • O a treia metodă de recuperare și procesare a cheilor într-o buclă implică utilizarea funcției încorporate iter ().
    utilizatori = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 pentru k in iter (users): print k, '= Smith vârsta => 27 nume => John 
  • Când aveți nevoie de indexul cheii care este procesată, utilizați enumera() funcția încorporată așa cum se arată.
    utilizatori = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 pentru index, key in enumerate prints 0 nume => John 1 vârstă => John 2 nume => John 

Împreună cu perechile cheie-valoare

  • Când doriți să preluați fiecare pereche cheie-valoare cu un singur apel, utilizați iteritems ().
    user = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 pentru k, v in users.iteritems Smith vârsta => 27 nume => John 

Iterând peste valori

  • Metoda itervalues ​​() pot fi folosite pentru a repeta toate valorile din dicționar. Deși această metodă arată similar cu o buclă folosind valori (), este mai eficientă, deoarece nu extrage toate valorile dintr-o dată.
    utilizatorii = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 pentru valoarea users.itervalues ​​() 

Extragerea matricelor

Următoarele metode descriu extragerea diferitelor informații din dicționarul Python într-o formă de matrice. Matricea rezultată poate fi loopată peste construcții normale de tip python. Cu toate acestea, rețineți că matricea returnată poate fi mare în funcție de dimensiunea dicționarului. Deci ar putea fi mai mult scump (în memorie) pentru a procesa aceste matrice decât folosind metodele iteratoare de mai sus.

Un caz în care este acceptabil să lucrați cu aceste matrice este atunci când trebuie să ștergeți elemente din dicționar atunci când întâlniți elemente nedorite. Lucrul cu un iterator în timp ce modificați dicționarul poate provoca un RuntimeError.

  • Metoda articole () returnează o serie de nopți cheie-valoare. Puteți repeta aceste perechi de valori cheie după cum se arată:
    utilizatorii = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 pentru k, v in users.items Smith vârsta => 27 nume => John 
  • Preluați toate cheile din dicționar utilizând metoda chei ().
    utilizatori = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 print users.keys () # prints ['lastname', 'age', 'firstname'] 

    Utilizați matricea returnată pentru a introduce buclă peste chei.

    pentru k în users.keys (): print k, '=>', utilizatori [k] # prints lastname => Smith age => 27 firstname => John 
  • În mod similar, utilizați metoda valori () pentru a prelua toate valorile din dicționar.
    pentru valoare în users.values ​​(): valoare de imprimare # prints Smith 27 John 

Cum folosiți dicționarele Python?

Am încercat să acoperim cele mai frecvente cazuri de utilizare pentru dicționarele python în acest articol. Asigurați-vă că ați verificat toate celelalte articole Python 10 Exemple Python de bază care vă vor ajuta să învățați rapid 10 exemple Python de bază care vă vor ajuta să învățați rapid Acest articol al exemplelor Python de bază este pentru cei care au deja experiență de programare și pur și simplu doresc să trecerea la Python cât mai repede posibil. Citește mai multe pentru mai multe sfaturi pentru Python 5 cursuri care te vor duce de la începutul lui Python la Pro 5 cursuri care te vor duce de la începutul lui Python la Pro Aceste cinci cursuri vă vor învăța totul despre programarea în Python, una dintre cele mai fierbinți limbi acolo chiar acum. Citeste mai mult . Dacă aveți alte cazuri de utilizare, considerați că ar trebui incluse, anunțați-ne în comentariile de mai jos!

Credite de imagine: viper345 / Shutterstock

Explorați mai multe despre: Python.