Pythoni sõnastikud: täielik juhend algusest edasijõudnuteni

1. Mis on assotsiatiivne massiiv (sõnastik) Pythonis?

Python’i “assotsiatiivne massiiv” on andmestruktuur, mis haldab andmeid võtme‑väärtuse paaride abil.
Üldiselt nimetatakse “assotsiatiivset massiivi” Pythonis dict tüübiks.
Näiteks, kasutades nime võtmena ja salvestades vanuse või ametuse väärtustena, muutuvad andmete otsimine ja haldamine tõhusaks.
Siin on “võti” unikaalne identifikaator, mida kasutatakse andmete määratlemiseks, ning iga võti peab olema unikaalne.

Sõnastiku tüübi ja teiste andmestruktuuride erinevused

Sõnastiku tüübi tunnus on kiire otsing võtmete abil.
Võrreldes järjestustüüpidega nagu Python’i list või tuple, ei pea elemente järjestikku otsima; saad otse võtme kaudu juurde pääseda, mis märkimisväärselt parandab otsingu kiirust.
Eriti suurte andmemahtude korral või olukordades, kus otsinguid tehakse sageli, on sõnastiku tüüp äärmiselt käepärane.

# Example of a dictionary
person = {
    "name": "Tanaka",
    "age": 30,
    "occupation": "Engineer"
}
print(person["name"])  # Output: Tanaka

2. Kuidas luua Python’i sõnastik

Pythonis saad sõnastikke luua mitmel viisil.
Võid kasutada literalnotatsiooni, dict() funktsiooni, zip() funktsiooni jne, valides olukorrale sobiva meetodi.

Meetod literalidega

Literalnotatsioon kasutab sõnastiku loomiseks kõveraid sulge {} ning see on kõige levinum ja lihtsaim meetod.
Literalide kasutamine võimaldab määrata võtmeid ja väärtusi ühes reas, võimaldades sõnastikke intuitiivselt luua.

# Literal notation
fruit_prices = {
    "apple": 100,
    "banana": 150,
    "orange": 200
}

dict() funktsiooni loomismeetod

dict() funktsioon on kasulik, kui genereerida sõnastik tuplede loendist jne.
See meetod on eriti käepärane, kui andmed muutuvad dünaamiliselt.

# dict function
fruit_prices = dict([("apple", 100), ("banana", 150), ("orange", 200)])

zip() funktsiooni loomismeetod

Kui loote sõnastiku, sidudes erinevaid loendeid võtmete ja väärtustena, saate seda lühidalt teha zip() funktsiooni kasutades.
See võimaldab tõhusalt genereerida sõnastiku vastavatest loenditest.

# zip function
keys = ["apple", "banana", "orange"]
values = [100, 150, 200]
fruit_prices = dict(zip(keys, values))

3. Põhilised sõnastiku operatsioonid

Python’i sõnastikud on muudetavad andmestruktuurid, mis võimaldavad paindlikku andmete lisamist, uuendamist ja kustutamist.
Neil on ka kiiremad otsingu kiirused võrreldes teiste andmestruktuuridega.

Elementide lisamine ja uuendamine

Elementi lisamiseks või uuendamiseks sõnastikus määrad lihtsalt väärtuse kindlale võtmele.
Väärtuse määramine olemasolevale võtmele uuendab seda, uue võtme määramine lisab uue kirje.

fruit_prices = {"apple": 100, "banana": 150}
# Add a new element
fruit_prices["orange"] = 200
# Update an existing element
fruit_prices["apple"] = 120

Elementide kustutamine

Spetsiifilise võtmega elemendi kustutamisel võid kasutada del lauset või pop() meetodit.
pop() meetod tagastab kustutatud väärtuse, mis on kasulik, kui pead säilitama eemaldatud andmeid.

# Deletion using the del statement
del fruit_prices["banana"]
# Deletion using the pop method (returns the deleted value)
removed_price = fruit_prices.pop("orange")

4. Täiustatud operatsioonid

Sõnastike kasutamine täiustatud viisil hõlmab nende ühendamist teiste sõnastikega ja sageduse loendamist. See võimaldab veelgi keerukamat andmete manipuleerimist.

Sõnastike ühendamine

Mitme sõnastiku üheks ühendamisel on kasulik update() meetod. Kui on duplikaatvõtmeid, kirjutatakse need üle, võimaldades andmeid ühendada või uuendada ühe sammuga.

dict1 = {"apple": 100, "banana": 150}
dict2 = {"banana": 200, "grape": 300}
dict1.update(dict2)
# Output: {'apple': 100, 'banana': 200, 'grape': 300}

Sageduse loendamise rakendamine

Sageduse loendamine on mugav, näiteks kui loendada, mitu korda iga märk stringis esineb. Sõnastiku tüübi kasutamine muudab andmete koondamise ja analüüsi tõhusaks.

text = "apple"
frequency = {}
for char in text:
    if char in frequency:
        frequency[char] += 1
    else:
        frequency[char] = 1
# Output: {'a': 1, 'p': 2, 'l': 1, 'e': 1}
侍エンジニア塾

5. Sõnastiku läbimine

Tsükkel on ideaalne kõigi sõnastiku elementide korraga töötlemiseks. See võimaldab teil võtmeid ja väärtusi eraldi manipuleerida või andmete loendi hankida.

Võtmete ja väärtuste hankimine tsükliga

Võtmete, väärtuste või nende kombinatsioonide töötlemiseks sõnastikus saate kasutada meetodeid keys(), values() ja items().

fruit_prices = {"apple": 100, "banana": 150, "orange": 200}
# Keys only
for key in fruit_prices.keys():
    print(key)
# Values only
for value in fruit_prices.values():
    print(value)
# Key-value pairs
for key, value in fruit_prices.items():
    print(f"The price of {key} is {value} yen")

6. Pythoni sõnastike kokkuvõte

Pythoni sõnastikud (assotsiatiivsed massiivid) haldavad andmeid võtme‑väärtuse paaridena, parandades märkimisväärselt otsingute ja operatsioonide tõhusust. Võrreldes listide ja tuple’itega pakuvad need kiiremaid otsinguid, muutes need eelislikuks suurte andmemahtude käsitlemisel. Need sobivad hästi ka andmete koondamiseks ja analüüsimiseks ning teiste andmestruktuuridega kombineerimiseks, muutes need Pythonis põhilise andmete manipuleerimise jaoks asendamatuks. Sõnastikutoimingutega harjumine võimaldab veelgi keerukamat andmetöötlust.