Oglas

Slovar python je struktura podatkov, podobna asociativni matriki, ki jo najdemo v drugih programskih jezikih. Niz ali seznam indeksira elemente glede na položaj. Slovar na drugi strani elemente indeksira s tipke ki so lahko strune. Slovar si predstavljajte kot neurejen niz ključ-vrednost pari.

pari ključa in vrednosti v slovarju python

V tem članku vam predstavljamo delo s slovarjem python.

Ustvarjanje slovarja

Obstaja več načinov za ustvarjanje slovarja python. Najenostavnejši uporablja inicializacijo zavore, s skladnjo ki spominja na JSON Kako pridobiti Python in JavaScript za komunikacijo z uporabo JSONDanes vam bom pokazal, kako uporabljati JSON za pošiljanje podatkov iz JavaScript na Python. Opisal bom nastavitev spletnega strežnika, skupaj z vso kodo, ki jo potrebujete. Preberi več .

uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27}

Kot tipke lahko uporabite tudi številke. Vendar bodite previdni, če kot številke uporabljate številke s plavajočo vejico, saj računalnik jih shranjuje kot približke Vse, kar morate vedeti o RAM-u in upravljanju pomnilnika

instagram viewer
RAM je kratkoročni pomnilnik vašega računalnika. Zato upravljanje pomnilnika pomembno vpliva na delovanje sistema. Tukaj razlagamo, kako deluje RAM in ali lahko storite karkoli za povečanje njegove učinkovitosti. Preberi več .

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} natisni dež_percent. natisni dež_percent [1980] # odtisov. {1980: '17%', 1981: '15%', 1982: '10%'} 17%

Določitev parov ključ-vrednost

Slovar lahko ustvarite in inicializirate tudi z uporabo parov vrednosti imen kot argumentov ključne besede za dict () konstruktor.

prebivalstvo = dict (Kalifornija = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) tiskarske populacije. # odtisov. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Niz ključkov vrednosti

Še en način ustvarjanja slovarja je uporaba matrice nastavkov ključev in vrednosti. Tu je isti primer kot zgoraj.

pair = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] populacija = dict (pari) tiskarske populacije. # odtisov. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Razumevanje slike

Razumevanje diktata zagotavlja kul sintakso, da inicializiramo dict, če lahko izračunamo vrednosti na podlagi tipk. Naslednje inicializira nareko števil in kvadratnih vrednosti za vrsto števil.

tisk {x: x ** 2 za x v xrange (10, 20)} # odtisov. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}

Kako deluje? Slednji del (za x v xrange (10, 20)) vrne obseg števil v določenem območju. Del razumevanja dikta ({x: x ** 2 ..}) zanke v tem območju in inicializira slovar.

Delo s slovarjem Python

Kaj lahko storite z slovarji, ko jih ustvarite? No, lahko dostopate do elementov, posodobite vrednosti, izbrišete elemente itd.

Dostop do elementov slovarja Python

Dostop do elementov dict z uporabo ključa znotraj oklepajev, tako kot bi želeli matrika ali seznam Kako delujejo matriki in seznami v PythonuNiz in seznami so nekaj najbolj uporabnih struktur podatkov pri programiranju - čeprav jih malo ljudi uporablja v celoti. Preberi več .

populacija tiska [„Delaware“] # odtisov. 897934.

Če je ključ številka, ponudbe ne potrebujete. Nato se zdi, da je izraz videti kot seznam ali indeksiranje matrike.

natisni dež_percent [1980] # odtisov. 17%

Vrsta ključa pri dostopu do njega se mora ujemati s tistim, ki je shranjeno v slovarju Python. Naslednje povzroči napako, saj so shranjene tipke številke, medtem ko je tipka za dostop niz.

x = '1980' natisni dež_percent [x] Št. rezultatov v 1 x = '1980' > 2 natisni rain_percent [x] KeyError: '1980'

Dostop do neobstoječega ključa je napaka.

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} natisni dež_percent [1983] # natisni 1 rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 natisni rain_percent [1983] KeyError: 1983.

Če želite dostopati do ključa in vnesti privzeto vrednost, če preslikava ne obstaja, uporabite get () metoda s privzeto vrednostjo kot drugi argument.

natisni rain_percent.get (1985, '0%') # odtisov. 0%

Preverjanje obstoja

Kaj pa, če želite preveriti prisotnost ključa, ne da bi do njega dejansko poskusili dostopati (in morda naleteti na KeyError kot zgoraj)? Lahko uporabite v ključna beseda v obrazcu ključ v dct ki vrne logično.

natisni leta 1980 v dežju_percentru. natisni '1980' v dežju_percentru. # odtisov. Prav. Lažno. 

Prekličite stanje (tj. Zagotovite, da ključ ni v slovarju Python) s pomočjo obrazca tipka ni v dct. To je enakovredno standardni negaciji pytona ni ključ v dct.

natisni 1980 ni v dežju_percentru. natisni 1985 ni v dežju. # odtisov. Lažno. Prav. 

Spreminjanje elementov

Vrednost spremenite tako, da dodelite želeni tipki.

uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} uporabnikov ['starost'] = 29. tiskalniki. # odtisov. {'priimek': 'Smith', 'starost': 29, 'ime': 'John'}

Z isto sintakso dodajte novo preslikavo v slovar Python.

uporabniki ['dob'] = '15 -sep-1971 ' tiskalniki. # odtisov. {'dob': '15 -sep-1971 ',' priimek ':' Smith ',' starost ': 29,' ime ':' John '}

Posodobite več elementov slovarja v enem posnetku s pomočjo nadgradnja() metoda.

uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} uporabnik posodobitev ({'starost': 29, 'dob': '15 -sep-1971 '}) tiskalniki. # odtisov. {'dob': '15 -sep-1971 ',' priimek ':' Smith ',' starost ': 29,' ime ':' John '}

S tipko nastavite privzeto vrednost setdefault (). Ta metoda nastavi vrednost ključa, če preslikava ne obstaja. Vrne trenutno vrednost.

# ne spremeni trenutne vrednosti. natisni uporabnike.setdefault ('ime', 'Jane') # odtisov. John # določa vrednost. natisni uporabnike.setdefault ('mesto', 'NY') # odtisov. NY # Končna vrednost. tiskalniki. # odtisov. {'priimek': 'Smith', 'starost': 27, 'ime': 'John', 'city': 'NY'}

Brisanje elementov

Izbrišite preslikave v slovarju z uporabo del operater. Ta operater ne vrne ničesar.

Naleteli boste na a KeyError če ključ ne obstaja v slovarju.

uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} del uporabniki ['starost'] tiskalniki. # odtisov. {'priimek': 'Smith', 'ime': 'John'}

Uporabi pop () namesto tega, ko želite izbrisati vrednost nazaj.

uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} natisni uporabnike.pop ('starost') tiskalniki. # odtisov. 27. {'priimek': 'Smith', 'ime': 'John'}

Kaj pa, če želite izbrisati ključ, če obstaja, ne da bi prišlo do napake, če ne? Lahko uporabiš pop () in določite Noben za drugi argument:

uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} users.pop ('foo', Nič) tiskalniki. # odtisov. {'priimek': 'Smith', 'starost': 27, 'ime': 'John'}

In tukaj je enoplastnica, s katero izbrišete kup ključev iz slovarja, ne da bi pri neobstoječih tipkah povzročili napako.

uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27, 'dob': '15 -sep-1971 '} zemljevid (lambda x: users.pop (x, None), ['age', 'foo', 'dob']) tiskalniki.

Želite izbrisati vse ključe iz slovarja? Uporabi jasno () metoda.

uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} users.clear () tiskalniki. # odtisov. {}

Looping z Python slovarji

Python ponuja veliko metode zankovanja Kako delujejo zanke v računalniškem programiranjuZank je ena prvih vrst nadzora, ki se jo boste naučili pri programiranju. Verjetno veste o času in za zanke, toda kaj doseže zanka med delom? Preberi več nad vnosi slovarja. Izberite eno, ki bo ustrezala vašim potrebam.

Prekrivanje ključev

  • Najpreprostejša metoda za obdelavo ključev (in morda vrednosti) zaporedoma uporablja zanko obrazca:
    uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} za k pri uporabnikih: natisni k, '=>', uporabniki [k] # odtisov. priimek => Smith. starost => 27. ime => Janez.
  • Uporaba metode iterkeys () deluje popolnoma enako kot zgoraj. Izberite, kateri obrazec želite uporabiti.
    uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} za k v users.iterkeys (): natisni k, '=>', uporabniki [k] # odtisov. priimek => Smith. starost => 27. ime => Janez.
  • Tretja metoda za pridobivanje in obdelavo ključev v zanki vključuje uporabo vgrajene funkcije iter ().
    uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} za k v iterju (uporabniki): natisni k, '=>', uporabniki [k] # odtisov. priimek => Smith. starost => 27. ime => Janez.
  • Ko potrebujete indeks ključa, ki se obdeluje, uporabite našteti () vgrajena funkcija, kot je prikazano.
    uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} za indeks, vpišite številko (uporabniki): natisni indeks, ključ, '=>', uporabniki [k] # odtisov. 0 priimek => Janez. 1 starost => Janez. 2 ime => Janez.

Preklapljanje po parih ključ-vrednost

  • Če želite z enim klicem pridobiti vsak par ključ-vrednost, uporabite iteritems ().
    uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} za k, v v users.iteritems (): natisni k, '=>', v. # odtisov. priimek => Smith. starost => 27. ime => Janez.

Iteracija nad vrednostmi

  • Metoda itervalues ​​() se lahko uporabi za ponovitev vseh vrednosti v slovarju. Čeprav ta metoda izgleda podobno kot zanka z uporabo vrednote(), je učinkovitejša, saj ne izloči vseh vrednosti naenkrat.
    uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} za vrednost v users.itervalues ​​(): vrednost tiskanja. # odtisov. Smith. 27. John.

Pridobivanje nizov

Naslednje metode opisujejo pridobivanje različnih informacij slovarja Python v obliki matrike. Nastali niz se lahko prekrije s pomočjo običajnih konstrukcij pytona. Upoštevajte pa, da je vrnjen niz lahko velik, odvisno od velikosti slovarja. Torej bo morda več drago (pomnilnik) za obdelavo teh nizov kot z uporabo zgornjih metod iteratorja.

En primer, ko je sprejemljivo delati s temi nizi, je, ko morate elemente iz slovarja izbrisati, ko naletite na nezaželene elemente. Delo z iteratorjem med spreminjanjem slovarja lahko povzroči RuntimeError.

  • Metoda izdelkov () vrne matriko tupolov ključ-vrednost. Ponovi lahko med temi pari ključ-vrednost, kot je prikazano:
    uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} za k, v v users.items (): natisni k, '=>', v. # odtisov. priimek => Smith. starost => 27. ime => Janez.
  • Po metodi pridobite vse ključe v slovarju tipke ().
    uporabniki = {'ime': 'John', 'priimek': 'Smith', 'starost': 27} natisni users.keys () # odtisov. ['priimek', 'starost', 'ime']

    Za vrnitev na tipke uporabite vrnjeni niz.

    za k v users.keys (): natisni k, '=>', uporabniki [k] # odtisov. priimek => Smith. starost => 27. ime => Janez.
  • Na podoben način uporabite metodo vrednote() za pridobitev vseh vrednosti v slovarju.
    za vrednost v users.values ​​(): vrednost tiskanja. # odtisov. Smith. 27. John. 

Kako uporabljate slovarje Python?

V tem članku smo poskušali zajeti najpogostejše primere uporabe slovarjev python. Poskrbite, da preverite vse naše drugi članki Python-a 10 osnovnih Python-ovih primerov, s pomočjo katerih se boste hitro naučiliTa članek osnovnih primerov pythona je namenjen tistim, ki že imajo nekaj izkušenj s programiranjem in preprosto želijo čim hitreje preiti na Python. Preberi več za enakomerno več nasvetov Python 5 tečajev, ki vas bodo od Python začetnika vodili do profesionalcaTeh pet tečajev vas bo naučilo vse o programiranju v Pythonu, enem najbolj vročih jezikov tam. Preberi več . Če imate druge primere uporabe, za katere menite, da bi jih morali vključiti, nam to sporočite v spodnjih komentarjih!

Slikovni krediti: viper345 / Shutterstock