Publicitate
Un dicționar python este o structură de date similară cu un tablou asociativ găsit în alte limbaje de programare. Un tablou sau o listă indexează elemente după poziție. Un dicționar, pe de altă parte, indexează elementele după chei care pot fi șiruri. Gândiți-vă la un dicționar ca la seturi neordonate valoare cheie perechi.
În acest articol, vă prezentăm să lucrați cu dicționarul python.
Crearea unui dicționar
Există mai multe moduri de a crea un dicționar python. Cel mai simplu folosește inițializarea, cu o sintaxă amintind de JSON Cum să obțineți Python și JavaScript pentru a comunica folosind JSONAstăzi vă voi arăta cum să utilizați JSON pentru a trimite date de la JavaScript către Python. Voi acoperi modul de configurare a unui server web, împreună cu tot codul de care aveți nevoie. Citeste mai mult .
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
Puteți utiliza numere și ca taste. Cu toate acestea, aveți grijă să folosiți numerele în virgulă flotantă drept taste, deoarece
calculatoarele le stochează ca aproximări Tot ce trebuie să știți despre RAM și Managementul memorieiRAM este memoria computerului dvs. pe termen scurt. Prin urmare, gestionarea memoriei are un impact semnificativ asupra performanței sistemului. Aici vă explicăm cum funcționează memoria RAM și dacă puteți face ceva pentru a crește eficiența acesteia. Citeste mai mult .rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} print rain_percent. print rain_percent [1980] # imprimeuri. {1980: '17%', 1981: '15%', 1982: '10%'} 17%
Precizarea perechilor cheie-valoare
De asemenea, puteți crea și inițializa un dicționar folosind perechi de valori nume ca argumente de cuvinte cheie la dict () constructor.
populatie = dict (California = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) tipărirea populației. # imprimeuri. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}
Array of Tuples cu valoare cheie
Un alt mod de a crea un dicționar este să folosești o serie de tupluri cu valoare cheie. Iată același exemplu ca mai sus.
pairs = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] populație = dict (perechi) tipărirea populației. # imprimeuri. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}
Înțelegerea dictelor
Înțelegerea dictelor oferă o sintaxă interesantă pentru inițializarea unui dict dacă puteți calcula valorile pe baza tastelor. Următoarele inițializează un dict de numere și valori pătrate pentru o serie de numere.
print {x: x ** 2 pentru x în xrange (10, 20)} # imprimeuri. {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ă o serie de numere din intervalul specificat. Partea de înțelegere a dictelor ({x: x ** 2 ..}) bucle peste acest interval și inițializează dicționarul.
Lucrul cu un dicționar Python
Ce poți face cu dicționare după ce le-ai creat? Ei bine, puteți accesa elemente, actualiza valori, șterge elemente etc.
Accesarea elementelor din dicționarul Python
Accesați un element al dictului folosind cheia dintre paranteze, exact așa cum v-ați dori un tablou sau o listă Cum funcționează Schițele și Listele în PythonSchițele și listele sunt unele dintre cele mai utile structuri de date în programare - deși puține persoane le folosesc la potențialul lor maxim. Citeste mai mult .
tipărirea populației [„Delaware”] # imprimeuri. 897934.
Dacă cheia este un număr, nu aveți nevoie de ghilimele. Apoi, expresia pare a fi o listă sau o indexare a tablelor.
print rain_percent [1980] # imprimeuri. 17%
Tipul cheii la accesarea acesteia trebuie să se potrivească cu ceea ce este stocat în dicționarul Python. Următoarele cauzează o eroare, deoarece tastele 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] # print 1 rain_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 butonul obține() metoda cu valoare implicită ca al doilea argument.
print rain_percent.get (1985, '0%') # imprimeuri. 0%
Verificarea existenței
Ce se întâmplă dacă doriți să verificați prezența unei chei fără să încercați efectiv să o accesați (și eventual să întâlniți o KeyError ca mai sus)? Puteți utiliza funcția în cuvânt cheie în formă cheie în dct care returnează un boolean.
print 1980 în rain_percent. imprimați „1980” în procentul de ploaie. # imprimeuri. Adevărat. Fals.
Inversați condiția (adică asigurați-vă că cheia nu este prezentă în dicționarul Python) folosind formularul cheie nu în dct. Acest lucru este echivalent cu negarea pitonului standard nu este cheia în dct.
print 1980 nu în ploaie_percent. print 1985 nu în ploaie_percent. # imprimeuri. Fals. Adevărat.
Modificarea elementelor
Modificați valoarea atribuind cheii necesare.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} utilizatori ['vârstă'] = 29. utilizatorii de imprimare. # imprimeuri. {'lastname': 'Smith', 'age': 29, 'firstname': 'John'}
Utilizați aceeași sintaxă pentru a adăuga o nouă mapare în dicționarul Python.
utilizatori ['dob'] = '15 -sep-1971' utilizatorii de imprimare. # imprimeuri. {'dob': '15 -sep-1971 ',' prenume ':' Smith ',' vârstă ': 29,' prenume ':' John '}
Actualizați mai multe elemente ale unui dicționar într-o singură fotografie utilizând butonul Actualizați() metodă.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.update ({'age': 29, 'dob': '15 -sep-1971 '}) utilizatorii de imprimare. # imprimeuri. {'dob': '15 -sep-1971 ',' prenume ':' Smith ',' vârstă ': 29,' prenume ':' John '}
Setați o valoare implicită pentru o cheie folosind setdefault (). Această metodă stabilește valoarea pentru cheie dacă maparea nu există. Acesta returnează valoarea curentă.
# nu modifică valoarea curentă. print users.setdefault ('prenume', 'Jane') # imprimeuri. John # stabilește valoarea. print users.setdefault („oraș”, „NY”) # imprimeuri. NY # Valoarea finală. utilizatorii de imprimare. # imprimeuri. {'lastname': 'Smith', 'age': 27, 'firstname': 'John', 'city': 'NY'}
Ștergerea elementelor
Ștergeți mapări din dicționar utilizând funcția del operator. Acest operator nu returnează nimic.
Vei întâlni o KeyError dacă cheia nu există în dicționar.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} del utilizator [„vârstă”] utilizatorii de imprimare. # imprimeuri. {'lastname': 'Smith', 'firstname': 'John'}
Folosește pop () în schimb, când doriți înapoi valoarea ștersă.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} print users.pop („vârstă”) utilizatorii de imprimare. # imprimeuri. 27. {'lastname': 'Smith', 'firstname': 'John'}
Ce se întâmplă dacă doriți să ștergeți o cheie dacă există, fără să provocați o eroare dacă nu? Poți să folosești pop () și precizați Nici unul pentru al doilea argument după cum urmează:
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.pop ('foo', Nici unul) utilizatorii de imprimare. # imprimeuri. {'lastname': 'Smith', 'age': 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 tastele inexistente.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27, 'dob': '15 -sep-1971 '} hartă (lambda x: utilizatori.pop (x, Nimeni), ['vârstă', 'foo', 'dob']) utilizatorii de imprimare.
Doriți să ștergeți toate cheile dintr-un dicționar? Folosește clar() metodă.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.clear () utilizatorii de imprimare. # imprimeuri. {}
Buclă cu Dicționare Python
Python oferă multe metode pentru bucle Cum funcționează buclele în programarea computeruluiBuclele 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 în timp? Citeste mai mult peste intrările unui dicționar. Alege unul care să se potrivească nevoilor tale.
Buclați peste chei
- Cea mai simplă metodă de procesare a cheilor (și eventual valorile) în secvență folosește o buclă a formularului:
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pentru k în utilizatori: print k, '=>', utilizatori [k] # imprimeuri. prenumele => Smith. varsta => 27. prenume => Ioan.
- Folosind metoda iterkeys () funcționează exact la fel ca mai sus. Luați alegerea cu privire la ce formă doriți să utilizați.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pentru k în utilizatori.iterkeys (): print k, '=>', utilizatori [k] # imprimeuri. prenumele => Smith. varsta => 27. prenume => Ioan.
- O a treia metodă de preluare și procesare a tastelor într-o buclă implică utilizarea funcției încorporate iter ().
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pentru k în iter (utilizatori): print k, '=>', utilizatori [k] # imprimeuri. prenumele => Smith. varsta => 27. prenume => Ioan.
- Când aveți nevoie de indexul cheii procesate, utilizați butonul enumera() funcție încorporată așa cum este prezentat.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pentru index, tastați enumerare (utilizatori): index de imprimare, cheie, '=>', utilizatori [k] # imprimeuri. 0 prenume => Ioan. 1 vârstă => Ioan. 2 prenume => Ioan.
Buclați pe perechi cu cheie-valoare
- Când doriți să preluați fiecare pereche cheie-valoare cu un singur apel, utilizați iteritems ().
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pentru k, v în utilizatori.iteritems (): print k, '=>', v. # imprimeuri. prenumele => Smith. varsta => 27. prenume => Ioan.
Iterarea valorilor peste
- Metoda itervalues () poate fi folosit pentru a itera peste toate valorile din dicționar. Deși această metodă arată similar cu o buclă folosind valori (), este mai eficient, deoarece nu extrage toate valorile simultan.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pentru valoare în utilizatori.itervalues (): valoare de tipărire. # imprimeuri. Smith. 27. Ioan.
Extragerea Array-urilor
Următoarele metode descriu extragerea de informații din dicționarul Python într-o formă de matrice. Matricea rezultată poate fi înclinată folosind construcții piton normale. Cu toate acestea, rețineți că tabloul returnat poate fi mare în funcție de dimensiunea dicționarului. Deci s-ar putea să fie mai mult scump (înțelept pentru memorie) să proceseze aceste tablouri decât folosind metodele de iterație de mai sus.
Un caz în care este acceptabil să lucrezi cu aceste tablouri este atunci când trebuie să ștergi elemente din dicționar, întrucât întâlnești elemente nedorite. Lucrul cu un iterator în timpul modificării dicționarului poate provoca un RuntimeError.
- Metoda articole () returnează o serie de tupluri cu valoare cheie. Puteți itera peste aceste perechi cheie-valoare, după cum se arată:
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pentru k, v în utilizatori.items (): print k, '=>', v. # imprimeuri. prenumele => Smith. varsta => 27. prenume => Ioan.
- Obțineți toate cheile din dicționar folosind metoda chei ().
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} print users.keys () # imprimeuri. ['prenume', 'vârstă', 'prenume']
Folosiți tabloul returnat pentru a vă bucla peste tastele.
pentru k în utilizatorii.keys (): print k, '=>', utilizatori [k] # imprimeuri. prenumele => Smith. varsta => 27. prenume => Ioan.
- Într-un mod similar, utilizați metoda valori () pentru a prelua toate valorile din dicționar.
pentru valoare în utilizatori.values (): valoare de tipărire. # imprimeuri. Smith. 27. Ioan.
Cum folosești Dicționarii Python?
Am încercat să acoperim cele mai frecvente cazuri de utilizare pentru dicționarele piton în acest articol. Asigurați-vă că verificați toate alte articole Python 10 exemple Python de bază care vă vor ajuta să învățați rapidAcest articol al exemplelor de bază piton este pentru cei care au deja o experiență de programare și doresc pur și simplu să treacă la Python cât mai repede posibil. Citeste mai mult pentru chiar mai multe sfaturi Python 5 cursuri care te vor duce de la Python Beginner la ProAceste cinci cursuri vă vor învăța totul despre programare în Python, una dintre cele mai tari limbi existente acum. Citeste mai mult . Dacă aveți alte cazuri de utilizare pe care considerați că ar trebui incluse, vă rugăm să ne informați în comentariile de mai jos!
Credite imagine: viper345 / Shutterstock