Pythoni sõnastik (koos näidetega)

Selles õpetuses saate teada kõike Pythoni sõnastike kohta; kuidas neid luuakse, nendele juurde pääsetakse, neile lisatakse, elementidest eemaldatakse ja mitmesuguseid sisseehitatud meetodeid.

Video: Pythoni sõnastikud võtme / väärtuse paaride salvestamiseks

Pythoni sõnastik on korrastamata üksuste kogu. Igal sõnaraamatu üksusel on key/valuepaar.

Sõnastikud on optimeeritud väärtuste hankimiseks, kui võti on teada.

Pythoni sõnaraamatu loomine

Sõnaraamatu loomine on sama lihtne kui üksuste paigutamine ()komadega eraldatud lokkide sisse .

Üksusel on a keyja vastav, valuemis on väljendatud paarina ( võti: väärtus ).

Kuigi väärtused võivad olla mis tahes tüüpi andmetega ja neid saab korrata, peavad võtmed olema muutumatut tüüpi (string, arv või muutumatute elementidega dupleks) ja unikaalsed.

 # 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')))

Nagu ülalt näete, saame sisseehitatud dict()funktsiooni abil luua ka sõnastiku .

Elementidele juurdepääs sõnastikust

Kui väärtuste kasutamiseks kasutatakse indekseerimist teiste andmetüüpidega, kasutab sõnastik keys. Võtmeid saab kasutada kas nurksulgudes ()või get()meetodi abil.

Kui kasutame nurksulgusid (), KeyErrortõstetakse see juhul, kui võtit sõnastikust ei leia. Teiselt poolt, get()meetod taastub, Nonekui võtit ei leita.

 # 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'))

Väljund

 Jack 26 Puudub jälgimine (viimane kõne on viimane): fail "", rida 15, trükituna (my_dict ('aadress')) KeyError: 'address'

Sõnaraamatu elementide muutmine ja lisamine

Sõnaraamatud on muutlikud. Võime omistamisoperaatori abil lisada uusi üksusi või muuta olemasolevate üksuste väärtust.

Kui võti on juba olemas, värskendatakse olemasolevat väärtust. Juhul, kui võtit pole, lisatakse sõnaraamatusse uus paar ( võti: väärtus ).

 # 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)

Väljund

 ('nimi': 'Jack', 'vanus': 27) ('nimi': 'Jack', 'vanus': 27, 'aadress': 'kesklinn')

Elementide eemaldamine sõnastikust

Selle pop()meetodi abil saame konkreetse üksuse sõnastikust eemaldada . See meetod eemaldab pakutava üksuse keyja tagastab value.

popitem()Meetodit saab kasutada eemaldada ja tagastada suvalise (key, value)eset paari sõnastikust. Kõiki üksusi saab clear()meetodi abil korraga eemaldada .

Samuti võime delmärksõna kasutada üksikute üksuste või kogu sõnastiku enda eemaldamiseks.

 # 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)

Väljund

 16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Jälgimine (viimane kõne viimati): fail "", rida 30, trükituna (ruudud) NameError: nimi 'ruudud' pole määratletud

Pythoni sõnastiku meetodid

Sõnaraamatuga saadaolevad meetodid on toodud allpool. Mõnda neist on ülaltoodud näidetes juba kasutatud.

Meetod Kirjeldus
selge () Eemaldab sõnastikust kõik üksused.
koopia () Tagastab sõnastiku madala koopia.
võtmed (järgnevad (, v)) Tagastab uue sõnastiku võtmetega seq-st ja väärtusega võrdne v (vaikimisi väärtus None).
saama (võti (, d)) Tagastab võtme väärtuse. Kui võtit pole olemas, tagastab d (vaikimisi None).
esemed () Tagastab sõnastiku üksuste uue objekti vormingus (võti, väärtus).
võtmed () Tagastab sõnastiku võtmete uue objekti.
pop (klahv (, d)) Eemaldab üksuse võtmega ja tagastab selle väärtuse või d, kui võtit ei leita. Kui d-d ei esitata ja võtit ei leita, tõstab see KeyError.
popitem () Eemaldab ja tagastab suvalise üksuse ( võti, väärtus ). Tõstab, KeyErrorkui sõnastik on tühi.
setdefault (võti (, d)) Tagastab vastava väärtuse, kui võti on sõnastikus. Kui ei, sisestage võti väärtusega d ja tagastab d (vaikimisi None).
värskendus ((muu)) Uuendab sõnastikku teiste võtmete / väärtuste paaridega, kirjutades olemasolevad võtmed üle.
väärtused() Tagastab sõnaraamatu väärtuste uue objekti

Siin on mõned näited nende meetodite kasutamise juhtumitest.

 # 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())))

Väljund

 ('Math': 0, 'English': 0, 'Science': 0) ('Math', 0) ('English', 0) ('Science', 0) ('Inglise', 'Matemaatika', ' Teadus ")

Pythoni sõnaraamatu mõistmine

Sõnastiku mõistmine on elegantne ja sisutihe viis Pythonis iteratiivist uue sõnastiku loomiseks.

Sõnaraamatu mõistmine koosneb väljendipaarist ( võti: väärtus ), millele järgneb forlause lokkis sulgudes ().

Siin on näide sõnastiku koostamiseks, kus iga üksus on paar arv ja selle ruut.

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

Väljund

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

See kood on samaväärne koodiga

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

Väljund

 (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

Sisseehitatud funktsioonid meeldib all(), any(), len(), cmp(), sorted(), jne levinud sõnaraamatute täita erinevaid ülesandeid.

Funktsioon Kirjeldus
kõik () Tagasi, Truekui kõik sõnastiku klahvid on tõesed (või kui sõnastik on tühi).
ükskõik milline () Naaske, Truekui mõni sõnastiku võti vastab tõele. Kui sõnastik on tühi, naaske False.
len () Tagastab sõnastiku pikkuse (üksuste arvu).
cmp () Võrdleb kahe sõnaraamatu üksusi. (Pole saadaval Python 3-s)
sorteeritud () Tagastab sõnastikus uue järjestatud võtmete loendi.

Siin on mõned näited, mis kasutavad sõnastikuga töötamiseks sisseehitatud funktsioone.

 # 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))

Väljund

 Vale Õige 6 (0, 1, 3, 5, 7, 9)

Huvitavad Artiklid...