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. Razmislite o rječniku kao neuredjenom skupu ključ-vrijednost para.
U ovom ćemo vam članku predstaviti rad sa python rječnikom.
Stvaranje rječnika
Postoji nekoliko načina stvaranja python rječnika. Najjednostavnija upotreba narukvice zagrade, sa sintaksom koji podsjeća na JSON Kako dobiti Python i JavaScript za komuniciranje pomoću JSON-aDanas ću vam pokazati kako koristiti JSON za slanje podataka s JavaScript-a na Python. Opisat ću kako postaviti web poslužitelj, zajedno sa svim kodom koji vam je potreban. Čitaj više .
users = {'ime': 'John', 'lastname': 'Smith', 'age': 27}
Možete koristiti i brojeve kao tipke. Međutim, budite oprezni koristeći brojeve s pomičnim zarezom kao tipke, jer je računalo pohranjuje ove kao aproksimacije Sve što trebate 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. Čitaj više .
rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} ispisati kišu_percent. print rain_percent [1980] # otisaka. {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.
broj stanovnika = dict (California = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) print populacije. # otisaka. {'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 = [('Kalifornija', 37253956), ('Kolorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] populacija = dict (parovi) print populacije. # otisaka. {'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 diktat brojeva i kvadratnih vrijednosti za niz brojeva.
ispis {x: x ** 2 za x u xrange (10, 20)} # otisaka. {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 željeli niz ili popis Kako rade nizovi i popisi u PythonuNizovi i popisi neke su od najkorisnijih struktura podataka u programiranju - iako ih malo ljudi koristi u potpunosti. Čitaj više .
populacija ispisa ['Delaware'] # otisaka. 897934.
Ako je ključ broj, ne trebaju vam navodnici. Izraz se zatim čini kao popis ili indeksiranje nizova.
print rain_percent [1980] # otisaka. 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.' ispisati 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% '} print rain_percent [1983] # otisaka 1 kiša_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.
ispisati rain_percent.get (1985, '0%') # otisaka. 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 boolean.
ispis 1980. u kišnoj visini. ispisati '1980' u kiši. # otisaka. Pravi. Lažno.
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.
ispis 1980. nije u kiši. ispis 1985. nije u kiši. # otisaka. Lažno. Pravi.
Promjena elemenata
Vrijednost promijenite dodjeljivanjem potrebnom ključu.
users = {'ime': 'John', 'lastname': 'Smith', 'age': 27} korisnika ['dob'] = 29. korisnici ispisa. # otisaka. {'prezime': 'Smith', 'dob': 29, 'ime': 'John'}
Upotrijebite istu sintaksu za dodavanje novog preslikavanja u Python rječnik.
korisnici ['dob'] = '15 -sepanj-1971 ' korisnici ispisa. # otisaka. {'dob': '15 -sep-1971 ',' prezime ':' Smith ',' dob ': 29,' ime ':' John '}
Ažurirajte više elemenata rječnika u jednom kadru koristeći Ažuriraj() metoda.
users = {'ime': 'John', 'lastname': 'Smith', 'age': 27} users.update ({'age': 29, 'dob': '15 -sep-1971 '}) korisnici ispisa. # otisaka. {'dob': '15 -sep-1971 ',' prezime ':' Smith ',' dob ': 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. ispis korisnika.setdefault ('ime', 'Jane') # otisaka. John # postavlja vrijednost. ispis korisnika.setdefault ('grad', 'NY') # otisaka. NY # Konačna vrijednost. korisnici ispisa. # otisaka. {'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 = {'ime': 'John', 'lastname': 'Smith', 'age': 27} del users ['dob'] korisnici ispisa. # otisaka. {'lastname': 'Smith', 'firstname': 'John'}
Koristiti pop () metoda umjesto toga, kad želite izbrisanu vrijednost vratiti.
users = {'ime': 'John', 'lastname': 'Smith', 'age': 27} ispis korisnika.pop ('dob') korisnici ispisa. # otisaka. 27. {'lastname': 'Smith', 'firstname': 'John'}
Što ako želite izbrisati ključ ako postoji, a da ne prouzrokuje grešku, 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', Nema) korisnici ispisa. # otisaka. {'prezime': 'Smith', 'dob': 27, 'ime': 'John'}
A evo i jednog linja za brisanje gomile ključeva iz rječnika bez uzrokovanja pogreške na nepostojećim tipkama.
users = {'ime': 'John', 'lastname': 'Smith', 'age': 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() metoda.
users = {'ime': 'John', 'lastname': 'Smith', 'age': 27} users.clear () korisnici ispisa. # otisaka. {}
Looping Python Rječnici
Python pruža mnogo metode za petlje Kako rade petlje u računalnom programiranjuPetlje su jedna od prvih vrsta kontrole koje ćete naučiti u programiranju. Vjerojatno znate za vrijeme i za petlje, ali što postiže petlja "dok traje"? Čitaj više 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: ispis k, '=>', korisnici [k] # otisaka. prezime => Smith. dob => 27. ime => Ivan.
- Korištenjem metode iterkeys () djeluje potpuno isto kao gore. Izaberite koji oblik želite koristiti.
users = {'ime': 'John', 'lastname': 'Smith', 'age': 27} za k u users.iterkeys (): ispis k, '=>', korisnici [k] # otisaka. prezime => Smith. dob => 27. ime => Ivan.
- 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 u iteru (korisnici): ispis k, '=>', korisnici [k] # otisaka. prezime => Smith. dob => 27. ime => Ivan.
- Kad vam treba indeks ključa koji se obrađuje, upotrijebite the nabrojati() ugrađena funkcija kao što je prikazano.
users = {'ime': 'John', 'lastname': 'Smith', 'age': 27} za indeks, ključ u nabrajanju (korisnici): ispis indeksa, ključ, '=>', korisnici [k] # otisaka. 0 prezime => Ivan. 1 dob => 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 u users.iteritems (): ispis k, '=>', v. # otisaka. prezime => Smith. dob => 27. ime => Ivan.
Iteracija nad vrijednostima
- Način itervalues () može se koristiti za ponavljanje svih vrijednosti u rječniku. Iako ova metoda izgleda slično kao pomoću petlje vrijednosti (), to je učinkovitije jer ne izvlači sve vrijednosti odjednom.
users = {'ime': 'John', 'lastname': 'Smith', 'age': 27} za vrijednost u users.itervalues (): vrijednost ispisa. # otisaka. Smith. 27. Ivan.
Vađenje nizova
Sljedeće metode opisuju ekstrahiranje raznih 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.
- Način 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 u users.items (): ispis k, '=>', v. # otisaka. prezime => Smith. dob => 27. ime => Ivan.
- Dohvati sve tipke u rječniku pomoću metode tipke ().
users = {'ime': 'John', 'lastname': 'Smith', 'age': 27} ispis korisnika.keys () # otisaka. ['prezime', 'dob', 'ime']
Upotrijebite vraćeni niz za prelazak preko tipki.
za k u users.keys (): ispis k, '=>', korisnici [k] # otisaka. prezime => Smith. dob => 27. ime => Ivan.
- Na sličan način koristite metodu vrijednosti () dohvatiti sve vrijednosti u rječniku.
za vrijednost u users.values (): vrijednost ispisa. # otisaka. Smith. 27. Ivan.
Kako koristite Python rječnike?
U ovom smo članku pokušali pokriti najčešće slučajeve upotrebe python rječnika. Obavezno provjerite sve naše ostali članci Pythona 10 osnovnih primjera Pythona koji će vam pomoći da brzo naučiteOvaj članak osnovnih primjera pythona namijenjen je onima koji već imaju određeno iskustvo u programiranju i jednostavno žele prijeći na Python što je brže moguće. Čitaj više za jednoliko više Pythonovih savjeta 5 tečaja koji će vas od profesora Pythona provesti do profesionalcaOvih pet tečajeva naučit će vas sve o programiranju na Pythonu, jednom od trenutno najjačih jezika. Čitaj više . Ako imate i druge slučajeve upotrebe za koje smatrate da bi trebali biti uključeni, javite nam u komentarima ispod!
Slikovni krediti: viper345 / Shutterstock