Python-sanakirja (esimerkkien kanssa)

Tässä opetusohjelmassa opit kaiken Python-sanakirjoista; miten ne luodaan, käytetään, lisätään, poistetaan elementtejä ja erilaisia ​​sisäänrakennettuja menetelmiä.

Video: Python-sanakirjat avain- / arvo-parien tallentamiseen

Python-sanakirja on järjestämätön kokoelma esineitä. Jokaisella sanakirjan kohdalla on key/valuepari.

Sanakirjat on optimoitu hakemaan arvoja, kun avain tiedetään.

Python-sanakirjan luominen

Sanakirjan luominen on yhtä helppoa kuin esineiden sijoittaminen ()pilkuin erotettujen kiharoiden aaltosulkeiden sisään .

Kohteella on a keyja vastaava, valuejoka ilmaistaan ​​parina ( avain: arvo ).

Vaikka arvot voivat olla minkä tahansa tyyppisiä ja ne voivat toistaa, avainten on oltava muuttumattomia (merkkijono, numero tai sekvenssi muuttumattomien elementtien kanssa) ja yksilöllisten.

 # empty dictionary my_dict = () # dictionary with integer keys my_dict = (1: 'apple', 2: 'ball') # dictionary with mixed keys my_dict = ('name': 'John', 1: (2, 4, 3)) # using dict() my_dict = dict((1:'apple', 2:'ball')) # from sequence having each item as a pair my_dict = dict(((1,'apple'), (2,'ball')))

Kuten näet ylhäältä, voimme luoda sanakirjan myös sisäänrakennetun dict()toiminnon avulla.

Elementtien käyttö sanakirjasta

Vaikka indeksointia käytetään muiden tietotyyppien kanssa arvojen käyttämiseen, sanakirja käyttää keys. Avaimia voidaan käyttää joko hakasulkeissa ()tai get()menetelmän kanssa.

Jos käytämme hakasulkeita (), KeyErrorkorotetaan, jos avainta ei löydy sanakirjasta. Toisaalta get()menetelmä palaa, Nonejos avainta ei löydy.

 # get vs () for retrieving elements my_dict = ('name': 'Jack', 'age': 26) # Output: Jack print(my_dict('name')) # Output: 26 print(my_dict.get('age')) # Trying to access keys which doesn't exist throws error # Output None print(my_dict.get('address')) # KeyError print(my_dict('address'))

Tuotos

 Tunkki 26 Ei yhtään jäljitys (viimeisin puhelu viimeisin): Tiedosto "", rivi 15, painettuna (my_dict ('address')) KeyError: 'address'

Sanakirjaelementtien muuttaminen ja lisääminen

Sanakirjat ovat muutettavissa. Voimme lisätä uusia kohteita tai muuttaa olemassa olevien kohteiden arvoa määritysoperaattorilla.

Jos avain on jo läsnä, nykyinen arvo päivitetään. Jos avainta ei ole, sanakirjaan lisätään uusi ( avain: arvo ) pari.

 # Changing and adding Dictionary Elements my_dict = ('name': 'Jack', 'age': 26) # update value my_dict('age') = 27 #Output: ('age': 27, 'name': 'Jack') print(my_dict) # add item my_dict('address') = 'Downtown' # Output: ('address': 'Downtown', 'age': 27, 'name': 'Jack') print(my_dict)

Tuotos

 ('nimi': 'Jack', 'ikä': 27) ('nimi': 'Jack', 'ikä': 27, 'osoite': 'keskusta')

Elementtien poistaminen Sanakirjasta

Voimme poistaa tietyn kohteen sanakirjasta pop()menetelmällä. Tämä menetelmä poistaa toimitetun kohteen keyja palauttaa value.

popitem()Menetelmää voidaan käyttää poistamaan ja palauttaa mielivaltaisen (key, value)tuote pari sanakirjasta. Kaikki kohteet voidaan poistaa kerralla clear()menetelmällä.

Voimme myös käyttää delavainsanaa yksittäisten kohteiden tai koko sanakirjan poistamiseen.

 # Removing elements from a dictionary # create a dictionary squares = (1: 1, 2: 4, 3: 9, 4: 16, 5: 25) # remove a particular item, returns its value # Output: 16 print(squares.pop(4)) # Output: (1: 1, 2: 4, 3: 9, 5: 25) print(squares) # remove an arbitrary item, return (key,value) # Output: (5, 25) print(squares.popitem()) # Output: (1: 1, 2: 4, 3: 9) print(squares) # remove all items squares.clear() # Output: () print(squares) # delete the dictionary itself del squares # Throws Error print(squares)

Tuotos

 16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Palautus (viimeisin puhelu viimeisin): Tiedosto "", rivi 30, painettuna (neliöt) NameError: nimeä 'neliöt' ei ole määritelty

Python-sanastomenetelmät

Sanakirjan kanssa käytettävissä olevat menetelmät on taulukoitu alla. Joitakin niistä on jo käytetty yllä olevissa esimerkeissä.

Menetelmä Kuvaus
asia selvä() Poistaa kaikki kohteet sanakirjasta.
kopio() Palauttaa matalan kopion sanakirjasta.
fromkeys (seq (, v)) Palauttaa uuden sanakirjan, jossa on avaimet sekvenssistä ja arvo on yhtä suuri kuin v (oletusarvo on None).
get (avain (, d)) Palauttaa avaimen arvon. Jos avainta ei ole, palauttaa d (oletusarvo on None).
tuotteet () Palauta uusi objekti sanakirjan kohteista (avain, arvo) -muodossa.
näppäimet () Palauttaa uuden objektin sanakirjan avaimista.
pop (näppäin (, d)) Poistaa kohteen avaimella ja palauttaa sen arvon tai d, jos avainta ei löydy. Jos d: tä ei anneta eikä avainta löydy, se nostaa KeyError.
popitem () Poistaa ja palauttaa mielivaltaisen kohteen ( avain, arvo ). Nostaa, KeyErrorjos sanakirja on tyhjä.
setdefault (avain (, d)) Palauttaa vastaavan arvon, jos avain on sanakirjassa. Jos ei, lisää avain arvoon d ja palauttaa d (oletusarvo on None).
päivitys ((muu)) Päivittää sanakirjan avain / arvo-pareilla muista kirjoittamalla olemassa olevat avaimet.
arvot () Palauttaa uuden objektin sanakirjan arvoista

Tässä on muutama esimerkki näiden menetelmien käyttötapauksista.

 # Dictionary Methods marks = ().fromkeys(('Math', 'English', 'Science'), 0) # Output: ('English': 0, 'Math': 0, 'Science': 0) print(marks) for item in marks.items(): print(item) # Output: ('English', 'Math', 'Science') print(list(sorted(marks.keys())))

Tuotos

 ('Math': 0, 'English': 0, 'Science': 0) ('Math', 0) ('English', 0) ('Science', 0) ('Englanti', 'Matematiikka', ' Tiede ')

Python-sanakirjan ymmärtäminen

Sanakirjan ymmärtäminen on tyylikäs ja ytimekäs tapa luoda uusi sanakirja Pythonin iteroitavasta.

Sanakirjan ymmärtäminen koostuu lausekeparista ( avain: arvo ), jota seuraa forlausunto kiharoiden aaltosulkeiden sisällä ().

Tässä on esimerkki sanakirjan tekemisestä siten, että jokainen kohde on numeropari ja sen neliö.

 # Dictionary Comprehension squares = (x: x*x for x in range(6)) print(squares)

Tuotos

 (0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)

Tämä koodi vastaa koodia

 squares = () for x in range(6): squares(x) = x*x print(squares)

Tuotos

 (0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)

A dictionary comprehension can optionally contain more for or if statements.

An optional if statement can filter out items to form the new dictionary.

Here are some examples to make a dictionary with only odd items.

 # Dictionary Comprehension with if conditional odd_squares = (x: x*x for x in range(11) if x % 2 == 1) print(odd_squares)

Output

 (1: 1, 3: 9, 5: 25, 7: 49, 9: 81)

To learn more dictionary comprehensions, visit Python Dictionary Comprehension.

Other Dictionary Operations

Dictionary Membership Test

We can test if a key is in a dictionary or not using the keyword in. Notice that the membership test is only for the keys and not for the values.

 # Membership Test for Dictionary Keys squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: True print(1 in squares) # Output: True print(2 not in squares) # membership tests for key only not value # Output: False print(49 in squares)

Output

 True True False

Iterating Through a Dictionary

We can iterate through each key in a dictionary using a for loop.

 # Iterating through a Dictionary squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) for i in squares: print(squares(i))

Output

 1 9 25 49 81

Dictionary Built-in Functions

Sisäänrakennettuja toimintoja like all(), any(), len(), cmp(), sorted()jne käytetään yleisesti sanakirjatyöskentely eri tehtäviin.

Toiminto Kuvaus
kaikki() Palaa, Truejos kaikki sanakirjan näppäimet ovat totta (tai jos sanakirja on tyhjä).
minkä tahansa() Palaa, Truejos jokin sanakirjan avain on totta. Jos sanakirja on tyhjä, palaa False.
len () Palauta sanakirjan pituus (kohteiden lukumäärä).
cmp () Vertaa kahden sanakirjan kohteita. (Ei saatavilla Python 3: ssa)
lajiteltu () Palauta uusi lajiteltu avainluettelo sanakirjasta.

Tässä on joitain esimerkkejä, jotka käyttävät sisäänrakennettuja toimintoja sanakirjan käsittelemiseen.

 # Dictionary Built-in Functions squares = (0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: False print(all(squares)) # Output: True print(any(squares)) # Output: 6 print(len(squares)) # Output: (0, 1, 3, 5, 7, 9) print(sorted(squares))

Tuotos

 Väärä Tosi 6 (0, 1, 3, 5, 7, 9)

Mielenkiintoisia artikkeleita...