Python Dictionary Kako to možete koristiti za pisanje boljeg koda

  • William Charles
  • 0
  • 4201
  • 305
Oglas

Rječnik python je struktura podataka slična asocijativnom nizu koji se nalazi u drugim programskim jezicima. Niz ili popis indeksira elemente prema položaju. Rječnik, s druge strane, indeksira elemente sa ključevi što mogu biti žice. Smatrajte rječnik kao neuređeni niz ključ-vrijednost parovi.

U ovom ćemo vam članku predstaviti rad sa python rječnikom.

Stvaranje rječnika

Postoji nekoliko načina stvaranja python rječnika. Najjednostavnije koristi brace inicijalizaciju, sa sintaksom koja podsjeća na JSON Kako do Python-a i JavaScript-a za komunikaciju pomoću JSON-a Kako dobiti Python i JavaScript za komunikaciju pomoću JSON-a Danas ću vam pokazati kako pomoću JSON-a slati podatke iz JavaScript-a u Python , Opisat ću kako postaviti web poslužitelj, zajedno sa svim kodom koji vam je potreban. .

users = 'ime': 'John', 'lastname': 'Smith', 'age': 27 

Možete koristiti i brojeve kao tipke. No, budite oprezni koristeći brojeve s pomičnom zarezom kao ključeve, jer računalo pohranjuje ove kao aproksimacije Sve što trebate znati o RAM-u i upravljanju memorijom Sve što morate znati o RAM-u i upravljanju memorijom RAM je kratkoročna memorija vašeg računala. Dakle, upravljanje memorijom ima značajan utjecaj na performanse sustava. Ovdje objašnjavamo kako RAM radi i možete li nešto učiniti da povećate svoju učinkovitost. .

rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' ispis rain_percent print rain_percent [1980] # otisci 1980: '17%', 1981: '15% ', 1982: '10% ' 17% 

Određivanje parova ključ-vrijednost

Možete stvoriti i inicijalizirati rječnik koristeći parove vrijednosti imena kao argumente ključne riječi za dict () konstruktor.

populacija = dict (California = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) print populacija # ispise 'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196 

Niz podešenih ključeva

Još jedan način stvaranja rječnika je korištenje niza parova ključeva i vrijednosti. Evo istog primjera kao gore.

parovi = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] populacija = dict (parovi) ispisati populaciju # ispise 'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196 

Razumijevanje slike

Razumijevanje diktata pruža cool sintaksu za inicijalizaciju diktata ako možete izračunati vrijednosti na temelju tipki. Sljedeće inicijalizira dikta brojeva i kvadratnih vrijednosti za niz brojeva.

ispis x: x ** 2 za x u xrange (10, 20) # otisci 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17 : 289, 18: 324, 19: 361 

Kako radi? Potonji dio (za x u xrange (10, 20)) vraća raspon brojeva u navedenom rasponu. Dio za razumijevanje diktata (x: x ** 2…) prelazi preko tog raspona i inicijalizira rječnik.

Rad sa Python Rječnikom

Što možete učiniti sa rječnicima nakon što ih stvorite? Pa, možete pristupiti elementima, ažurirati vrijednosti, izbrisati elemente itd.

Pristup elementima Python Rječnika

Pristupite elementu dikta koristeći ključ u zagradama, baš kao što biste i polju ili popisu Kako nizovi i popisi rade u Pythonu Kako nizovi i popisi rade u Python nizovima i popisima su neke od najkorisnijih struktura podataka u programiranju - iako ih malo ljudi koristi u svom punom potencijalu. .

populacija ispisa ['Delaware'] # ispisuje 897934 

Ako je ključ broja, ne trebaju vam navodnici. Izraz se tada čini kao popis ili indeksiranje nizova.

print rain_percent [1980] # otisak 17% 

Vrsta ključa kada mu pristupate mora odgovarati onome što je pohranjeno u rječniku Python. Sljedeće uzrokuje pogrešku, jer su spremljeni ključevi brojevi, a pristupni ključ je niz.

x = '1980' ispis rain_percent [x] # rezultata u 1 x = '1980' ----> 2 ispisa rain_percent [x] KeyError: '1980' 

Pristup nepostojećem ključu je greška.

rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' ispis rain_percent [1983] # otisak 1 rain_percent = 1980: '17%', 1981: '15% ', 1982 : '10% ' ----> 2 ispisa rain_percent [1983] KeyError: 1983 

Za pristup ključu i pružanje zadane vrijednosti ako mapiranje ne postoji, upotrijebite the dobiti() metoda sa zadanom vrijednošću kao drugi argument.

ispis Rain_percent.get (1985, '0%') # ispisa 0% 

Provjera postojanja

Što ako želite provjeriti prisutnost ključa bez da mu zapravo pokušate pristupiti (i možda naiđete na KeyError kao gore)? Možete koristiti u ključna riječ u obliku ključ u dct što vraća bulovu.

print 1980 u rain_percent print '1980' u rain_percent # otisci True False 

Preokrenite uvjet (tj. Osigurajte da ključ ne bude prisutan u Python rječniku) pomoću obrasca ključ nije u dct-u. To je ekvivalent standardnoj negaciji pytona nije ključ u dct-u.

print 1980 not in rain_percent print 1985 not in rain_percent # otisci False True 

Promjena elemenata

Promijenite vrijednost dodjeljivanjem potrebnom ključu.

users = 'ime': 'John', 'lastname': 'Smith', 'age': 27 korisnika ['age'] = 29 korisnika ispisa # ispisuje 'lastname': 'Smith', 'age': 29, 'ime': 'Ivan' 

Upotrijebite istu sintaksu za dodavanje novog preslikavanja u Python rječnik.

users ['dob'] = '15 -sep-1971 'korisnici ispisa # ispise ' dob ': '15 -sep-1971', 'lastname': 'Smith', 'age': 29, 'name': ' Ivan' 

Ažurirajte više elemenata rječnika u jednom kadru koristeći ažuriranje() način.

users = 'ime': 'John', 'lastname': 'Smith', 'age': 27 korisnici.update ('age': 29, 'dob': '15 -sep-1971 ') ispis korisnici # ispise 'dob': '15 -sep-1971 ',' prezime ':' Smith ',' age ': 29,' ime ':' John ' 

Postavite zadanu vrijednost za ključ pomoću setdefault (). Ova metoda postavlja vrijednost za ključ ako mapiranje ne postoji. Vraća trenutnu vrijednost.

# ne mijenja trenutnu vrijednost korisnika ispisa.setdefault ('ime', 'Jane') # ispisuje John # postavlja vrijednost print korisnika.setdefault ('city', 'NY') # ispisuje NY # Final value korisnika korisnika ispisuje # ispise ' prezime ':' Smith ',' dob ': 27,' ime ':' John ',' city ':' NY ' 

Brisanje elemenata

Izbrišite mapiranja u rječniku pomoću del operater. Ovaj operater ništa ne vraća.

Naići ćete na KeyError ako ključ ne postoji u rječniku.

users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 del users ['age'] korisnici ispisa # ispise 'lastname': 'Smith', 'firstname': ' Ivan' 

Koristiti pop () metoda umjesto toga, kad želite izbrisanu vrijednost vratiti.

users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 ispis users.pop ('age') korisnici ispisa # ispisuje 27 'lastname': 'Smith', 'name ': 'Ivan' 

Što ako želite izbrisati ključ ako postoji, bez uzrokovanja pogreške ako ne postoji? Možeš koristiti pop () i odredite nijedan za drugi argument sljedeće:

users = 'ime': 'John', 'lastname': 'Smith', 'age': 27 users.pop ('foo', None) korisnici ispisa # ispise 'lastname': 'Smith', 'age ': 27,' ime ':' John ' 

A ovdje je jedan povez koji treba obrisati gomilu ključeva iz rječnika bez uzrokovanja pogreške na nepostojećim tipkama.

users = 'ime': 'John', 'prezime': 'Smith', 'dob': 27, 'dob': '15 -sep-1971 ' karta (lambda x: users.pop (x, None) , ['age', 'foo', 'dob']) korisnici ispisa 

Želite li izbrisati sve tipke iz rječnika? Koristiti čisto() način.

users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.clear () ispisuju korisnici # otiske  

Looping Python Rječnici

Python nudi brojne metode za petlje kako rade petlje dok rade dok se rade u računalnom programiranju Kako se petlje rade dok se petlja u računalnom programiranju petlje jedna su od prvih vrsta kontrole koje ćete naučiti u programiranju. Vjerojatno znate za vrijeme i za petlje, ali što postiže petlja "dok traje"? preko unosa rječnika. Odaberite jedan prema vašim potrebama.

Zamicanje ključeva

  • Najjednostavnija metoda za obradu ključeva (i eventualno vrijednosti) u nizu koristi petlju obrasca:
    users = 'ime': 'John', 'lastname': 'Smith', 'age': 27 za k u korisnicima: print k, '=>', korisnici [k] # ispisuje prezime => Smith age = > 27 ime => Ivan 
  • Korištenjem metode iterkeys () djeluje potpuno isto kao gore. Izaberite koji oblik želite koristiti.
    users = 'ime': 'John', 'prezime': 'Smith', 'age': 27 za k u users.iterkeys (): ispis k, '=>', korisnici [k] # ispisuje prezime = > Smith godina => 27 ime => John 
  • Treća metoda dohvaćanja i obrade ključeva u petlji uključuje upotrebu ugrađene funkcije ITER ().
    users = 'ime': 'John', 'lastname': 'Smith', 'age': 27 za k in iter (korisnici): print k, '=>', korisnici [k] # ispisuje prezime => Smith age => 27 imena => John 
  • Kad vam je potreban indeks ključa koji se obrađuje, upotrijebite the nabrojati() ugrađena funkcija kao što je prikazano.
    users = 'ime': 'John', 'prezime': 'Smith', 'age': 27 za indeks, ključ u nabrajanju (korisnici): ispis indeksa, ključ, '=>', korisnici [k] # ispisuje 0 prezime => Ivan 1 godina => Ivan 2 ime => Ivan 

Prebacivanje preko parova ključa i vrijednosti

  • Ako želite dohvatiti svaki par ključ-vrijednost jednim pozivom, upotrijebite iteritems ().
    users = 'ime': 'John', 'lastname': 'Smith', 'age': 27 za k, v in users.iteritems (): ispis k, '=>', v # ispisuje prezime => Smith age => 27 imena => John 

Ponavljanje vrijednosti

  • Metoda itervalues ​​() može se koristiti za ponavljanje svih vrijednosti u rječniku. Iako ova metoda izgleda slično kao pomoću petlje vrijednosti (), učinkovitiji je jer ne izvlači sve vrijednosti odjednom.
    users = 'ime': 'John', 'lastname': 'Smith', 'age': 27 za vrijednost u users.itervalues ​​(): vrijednost ispisa # ispisuje Smith 27 John 

Vađenje nizova

Sljedeće metode opisuju vađenje različitih podataka Python rječnika u obliku polja. Rezultirajući niz može se prelaziti petljom koristeći uobičajene konstrukcije pitona. Međutim, imajte na umu da vraćeni niz može biti velik, ovisno o veličini rječnika. Pa bi moglo biti i više skupo (za pamćenje) za obradu ovih nizova nego pomoću gornjih metoda iteratora.

Jedan slučaj u kojem je prihvatljivo raditi s ovim nizovima je kada trebate izbrisati stavke iz rječnika jer naiđete na nepoželjne elemente. Rad s iteratorom tijekom izmjene rječnika može uzrokovati RuntimeError.

  • Metoda stavke () vraća niz podešenih dodataka. Možete ponoviti preko ovih parova ključ-vrijednost kao što je prikazano:
    users = 'ime': 'John', 'lastname': 'Smith', 'age': 27 za k, v in users.items (): ispis k, '=>', v # ispisuje prezime => Smith age => 27 imena => John 
  • Dohvatite sve ključeve u rječniku pomoću metode tipke ().
    users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 ispis users.keys () # ispisuje ['prezime', 'age', 'ime'] 

    Upotrijebite vraćenu matricu za kretanje kroz tipke.

    za k u users.keys (): ispis k, '=>', korisnici [k] # ispisuje prezime => Smith age => 27 ime => John 
  • Na sličan način koristite metodu vrijednosti () dohvatiti sve vrijednosti u rječniku.
    za vrijednost u users.values ​​(): vrijednost ispisa # ispisuje Smith 27 John 

Kako koristite Python rječnike?

U ovom smo članku pokušali obuhvatiti najčešće slučajeve upotrebe python rječnika. Obavezno pogledajte sve naše ostale članke o Pythonu. 10 osnovnih primjera Pythona koji će vam pomoći da brzo naučite 10 osnovnih primjera Pythona koji će vam pomoći da brzo naučite Ovaj članak osnovnih primjera pythona namijenjen je onima koji već imaju određeno iskustvo u programiranju i jednostavno žele prijelaz na Python što je brže moguće. za još savjeta Python-a 5 tečajeva koji će vas od Python-a započeti do Pro-5 tečajeva koji će vas od Python-a započeti do Pro-ovih pet tečaja naučit će vas sve o programiranju na Pythonu, jednom od najzgodnijih jezika trenutno tamo. . Ako imate i druge slučajeve upotrebe za koje smatrate da bi trebali biti uključeni, javite nam u komentarima u nastavku!

Slikovni krediti: viper345 / Shutterstock




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.