Mainos
Python-sanakirja on tietorakenne, joka muistuttaa assosiatiivista taulukkoa, jota löytyy muista ohjelmointikielisistä. Matriisi tai luettelo indeksoi elementit sijainnin mukaan. Sanakirja puolestaan indeksoi elementit näppäimet jotka voivat olla jousia. Ajattele sanakirjaa järjestämättöminä sarjoina avain-arvo paria.

Tässä artikkelissa esittelemme sinulle python-sanakirjan käytön.
Sanakirjan luominen
Python-sanakirjan luomiseen on useita tapoja. Yksinkertaisin käyttää ahdin alustaa syntaksin kanssa muistuttaa JSON: ta Kuinka saada Python ja JavaScript kommunikoimaan JSON: n avullaTänään näytän sinulle, kuinka JSON: n avulla voidaan lähettää tietoja JavaScriptiltä Pythonille. Tarkoitan web-palvelimen asennuksen ja kaikki tarvitsemasi koodit. Lue lisää .
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27}
Voit käyttää numeroita myös näppäiminä. Ole kuitenkin varovainen käyttämällä liukulukujen numeroita avaimina, koska tietokone tallentaa ne likiarvoina Kaikki mitä sinun tarvitsee tietää RAM- ja muistionhallinnasta RAM on tietokoneesi lyhytaikainen muisti. Siksi muistinhallinnalla on merkittävä vaikutus järjestelmän suorituskykyyn. Tässä selitetään kuinka RAM toimii ja voitko tehdä jotain sen tehokkuuden lisäämiseksi. Lue lisää .
rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} tulosta rain_percent. tulosta sadeviikko [1980] # tulostaa. {1980: '17%', 1981: '15%', 1982: '10%'} 17%
Avain-arvo-parien määrittäminen
Voit myös luoda ja alustaa sanakirjan käyttämällä nimiarvopareja avainsanargumenteina dict () rakentaja.
väestö = dict (Kalifornia = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) painettu väestö. # tulostaa. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}
Sarja avain-arvoisia Tupleja
Vielä yksi tapa luoda sanakirja on käyttää joukko avain-arvo-tuppeja. Tässä on sama esimerkki kuin yllä.
pareina = [('Kalifornia', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] väestö = kuva (paria) painettu väestö. # tulostaa. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}
Dict ymmärtäminen
Dikt-ymmärtäminen tarjoaa viileän syntaksin alustamaan diktti, jos voit laskea arvot näppäimien perusteella. Seuraava alustus numeroalueen numero- ja neliöarvoista.
tulosta {x: x ** 2 x: lle xrange (10, 20)} # tulostaa. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}
Kuinka se toimii? Jälkimmäinen osa (x: lle xrangeissa (10, 20)) palauttaa määritetyn alueen numeroalueen. Diktin ymmärtämisen osa ({x: x ** 2 ..}) silmukoi tällä alueella ja alustaa sanakirjan.
Työskentely Python-sanakirjan kanssa
Mitä voit tehdä sanakirjoilla, kun olet luonut ne? Voit käyttää elementtejä, päivittää arvoja, poistaa elementtejä jne.
Python-sanakirjaelementtien käyttäminen
Pääset sanan elementtiin suluissa olevalla avaimella, aivan kuin tekisit taulukko tai luettelo Kuinka ryhmät ja luettelot toimivat PythonissaMatriisit ja luettelot ovat hyödyllisiä tietorakenteita ohjelmoinnissa - vaikka harvat ihmiset käyttävät niitä täysimääräisesti. Lue lisää .
painopopulaatio ['Delaware'] # tulostaa. 897934.
Jos avain on numero, et tarvitse lainauksia. Lause näyttää sitten näyttävän luettelolta tai taulukon indeksoinnilta.
tulosta sadeviikko [1980] # tulostaa. 17%
Avaimen tyypin on sitä käytettäessä vastattava Python-sanakirjaan tallennettua tyyppiä. Seuraava aiheuttaa virheen, koska tallennetut avaimet ovat numeroita, kun saantiavain on merkkijono.
x = '1980' tulosta sadevirta [x] # tulokset 1 x = '1980' > 2 tulosta rain_percent [x] KeyError: '1980'
Olematon avain on virhe.
rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} tulosta rain_percent [1983] # tulostaa 1 sadevirta = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 print rain_percent [1983] KeyError: 1983.
Jos haluat käyttää avainta ja antaa oletusarvon, jos kartoitusta ei ole, käytä saada() menetelmä, jonka oletusarvo on toinen argumentti.
tulosta rain_percent.get (1985, '0%') # tulostaa. 0%
Olemassaolon tarkistaminen
Entä jos haluat tarkistaa avaimen olemassaolon yrittämättä tosiasiallisesti käyttää sitä (ja mahdollisesti kohtaavan KeyError kuten edellä)? Voit käyttää sisään avainsana muodossa näppäile dct joka palauttaa boolean.
tulosta 1980 sateessa. tulosta '1980' in rain_percent. # tulostaa. Totta. Väärä.
Käännä ehto (ts. Varmista, että avainta ei ole Python-sanakirjassa) lomakkeella avain ei dct. Tämä vastaa normaalia python-kieltämistä ei näppäile dct.
tulosta 1980 ei sateessa. painatus 1985, ei sateenkeskuksessa. # tulostaa. Väärä. Totta.
Elementtien muokkaaminen
Muuta arvoa määrittämällä tarvittava avain.
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} käyttäjiä ['ikä'] = 29. painatuskäyttäjät. # tulostaa. {'sukunimi': 'Smith', 'ikä': 29, 'etunimi': 'John'}
Käytä samaa syntaksia lisätäksesi uuden kartoituksen Python-sanakirjaan.
käyttäjät ['dob'] = '15-syyskuu 1971 ' painatuskäyttäjät. # tulostaa. {'dob': '15 -sep-1971 ',' sukunimi ':' Smith ',' ikä ': 29,' etunimi ':' John '}
Päivitä sanakirjan useita elementtejä yhdessä otoksessa päivittää() menetelmä.
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} users.update ({'ikä': 29, 'dob': '15-s-1971 '}) painatuskäyttäjät. # tulostaa. {'dob': '15 -sep-1971 ',' sukunimi ':' Smith ',' ikä ': 29,' etunimi ':' John '}
Aseta avaimen oletusarvo painikkeella aseta oletus(). Tämä menetelmä asettaa avaimen arvon, jos kartoitusta ei ole. Se palauttaa nykyisen arvon.
# ei muuta nykyarvoa. tulosta käyttäjät.setdefault ('etunimi', 'Jane') # tulostaa. John # asettaa arvon. tulosta käyttäjät.setdefault ('kaupunki', 'NY') # tulostaa. NY # Lopullinen arvo. painatuskäyttäjät. # tulostaa. {'sukunimi': 'Smith', 'ikä': 27, 'etunimi': 'John', 'kaupunki': 'NY'}
Elementtien poistaminen
Poista kuvaus sanakirjasta painikkeilla del operaattori. Tämä operaattori ei palauta mitään.
Koet a KeyError jos avainta ei ole sanakirjassa.
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} del käyttäjät ['ikä'] painatuskäyttäjät. # tulostaa. {'sukunimi': 'Smith', 'etunimi': 'John'}
Käytä pop() sen sijaan, kun haluat poistetun arvon takaisin.
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} tulosta käyttäjät.pop ('ikä') painatuskäyttäjät. # tulostaa. 27. {'sukunimi': 'Smith', 'etunimi': 'John'}
Entä jos haluat poistaa avaimen, jos se on olemassa, aiheuttamatta virhettä, jos sitä ei ole? Voit käyttää pop() ja määritä Ei mitään toista väitettä varten seuraavasti:
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} users.pop ('foo', ei mitään) painatuskäyttäjät. # tulostaa. {'sukunimi': 'Smith', 'ikä': 27, 'etunimi': 'John'}
Ja tässä on yksivuoraus, jolla voidaan poistaa joukko avaimia sanakirjasta aiheuttamatta virhettä olemattomille avaimille.
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27, 'dob': '15 -sep-1971 '} kartta (lambda x: users.pop (x, none), ['ikä', 'foo', 'dob']) painatuskäyttäjät.
Haluatko poistaa kaikki näppäimet sanakirjasta? Käytä asia selvä() menetelmä.
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} users.clear () painatuskäyttäjät. # tulostaa. {}
Looping Python-sanakirjoilla
Python tarjoaa monia menetelmät silmukointiin Kuinka silmukoiden toiminta tietokoneohjelmoinnissaSilmukat ovat yksi ensimmäisistä ohjaustyypeistä, jotka opit ohjelmoinnissa. Tiedät todennäköisesti silmukoista ja silmukoista, mutta mitä väliaikainen silmukka suorittaa? Lue lisää sanakirjan merkinnöistä. Valitse yksi tarpeitasi vastaavaksi.
Silmukka avainten yli
- Yksinkertaisin menetelmä avainten (ja mahdollisesti arvojen) käsittelemiseksi peräkkäin käyttää muodon silmukkaa:
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} k käyttäjille: tulosta k, '=>', käyttäjät [k] # tulostaa. sukunimi => Smith. ikä => 27. etunimi => John.
- Menetelmän käyttäminen iterkeys () toimii täsmälleen samalla tavalla kuin yllä. Valitse, mitä lomaketta haluat käyttää.
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} k: lle käyttäjille.iterkeys (): tulosta k, '=>', käyttäjät [k] # tulostaa. sukunimi => Smith. ikä => 27. etunimi => John.
- Kolmas menetelmä avainten hakemiseksi ja käsittelemiseksi silmukassa käsittää sisäänrakennetun toiminnon käyttämisen iter ().
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} k: lle iterissä (käyttäjät): tulosta k, '=>', käyttäjät [k] # tulostaa. sukunimi => Smith. ikä => 27. etunimi => John.
- Kun tarvitset prosessoitavan avaimen hakemistoa, käytä luetella() sisäänrakennettu toiminto kuvan osoittamalla tavalla.
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} hakemistolle, avain luettelossa (käyttäjät): tulosta hakemisto, näppäin, '=>', käyttäjät [k] # tulostaa. 0 sukunimi => John. 1 ikä => John. 2 etunimi => John.
Silmukka avain-arvo-pareista
- Kun haluat hakea jokaisen avain-arvoparin yhdellä puhelulla, käytä iteritems ().
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} k: lle, käyttäjille.iteritems (): tulosta k, '=>', v. # tulostaa. sukunimi => Smith. ikä => 27. etunimi => John.
Iteraatio yli arvojen
- Menetelmä itervalues () voidaan toistaa kaikkien sanakirjan arvojen välillä. Vaikka tämä menetelmä näyttää samanlaiselta kuin silmukka, jossa käytetään arvot (), se on tehokkaampi, koska se ei erota kaikkia arvoja kerralla.
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} arvoa käyttäjille.itervalues (): tulostusarvo. # tulostaa. Smith. 27. John.
Erottamalla ryhmät
Seuraavat menetelmät kuvaavat erilaisten Python-sanakirjatietojen erottamista taulukkomuodosta. Tuloksena oleva taulukko voidaan silmukoida käyttämällä normaaleja python-rakenteita. Muista kuitenkin, että palautettu taulukko voi olla suuri sanakirjan koosta riippuen. Joten se voisi olla enemmän kallis (muisti viisas) prosessoida nämä taulukot kuin käyttämällä yllä olevia iteraattorimenetelmiä.
Yksi tapaus, jossa on hyväksyttävää työskennellä näiden ryhmien kanssa, on se, että joudut poistamaan kohteita sanakirjasta, kun kohtaat ei-toivottuja elementtejä. Työskentely iteraattorin kanssa sanakirjan muokkaamisessa voi aiheuttaa RuntimeError-ongelman.
- Menetelmä kohdetta () palauttaa taulukon avain-arvo tuples. Voit toistaa näiden avain-arvo-parien yli kuvan osoittamalla tavalla:
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} k, v: lle user.items (): tulosta k, '=>', v. # tulostaa. sukunimi => Smith. ikä => 27. etunimi => John.
- Nouda kaikki sanakirjan näppäimet menetelmällä avaimet ().
käyttäjät = {'etunimi': 'John', 'sukunimi': 'Smith', 'ikä': 27} tulosta käyttäjät.näppäimet () # tulostaa. [sukunimi, ikä, etunimi]
Käytä palautettua taulukkoa avainten siirtämiseen.
k: lle user.keys (): tulosta k, '=>', käyttäjät [k] # tulostaa. sukunimi => Smith. ikä => 27. etunimi => John.
- Käytä menetelmää samalla tavalla arvot () hakeaksesi kaikki sanakirjan arvot.
arvolle user.values (): tulostusarvo. # tulostaa. Smith. 27. John.
Kuinka käytät Python-sanakirjoja?
Olemme yrittäneet kattaa python-sanakirjojen yleisimmät käyttötapaukset tässä artikkelissa. Muista tarkistaa kaikki meidän muut Python-artikkelit 10 perustason Python-esimerkkiä, jotka auttavat sinua oppimaan nopeastiTämä python-perusesimerkkien artikkeli on tarkoitettu niille, joilla on jo jonkinlaista ohjelmointikokemusta ja jotka haluavat yksinkertaisesti siirtyä Pythoniin mahdollisimman nopeasti. Lue lisää edes lisää Python-vinkkejä 5 kurssia, jotka vievät sinut Pythonin aloittelijasta Pro: lleNämä viisi kurssia opettavat sinulle kaiken ohjelmoinnin Pythonissa, joka on yksi kuumimmista kielistä tällä hetkellä. Lue lisää . Jos sinulla on muita käyttötapoja, jotka sinun mielestäsi pitäisi sisällyttää mukaan, ota meihin yhteyttä alla olevissa kommenteissa!
Kuvalainat: viper345 / Shutterstock