Python slovník je dátová štruktúra podobná asociatívnemu poľu, ktoré sa nachádza v iných programovacích jazykoch. Pole alebo zoznam indexuje prvky podľa polohy. Slovník, na druhej strane, indexuje prvky podľa kľúče čo môžu byť struny. Predstavte si slovník ako neusporiadané sady kľúč-hodnota dvojice.
V tomto článku vám predstavíme prácu so slovníkom python.
Vytvorenie slovníka
Existuje niekoľko spôsobov, ako vytvoriť slovník pythonu. Najjednoduchšie používa inicializáciu zátvorky so syntaxou pripomínajúcou JSON.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
Ako klávesy môžete použiť aj čísla. Buďte však opatrní pri použití čísel s pohyblivou rádovou čiarkou ako kľúčov, pretože ich počítač ukladá ako aproximácie.
rain_percent = { 1980: '17%', 1981: '15%', 1982: '10%'}
print(rain_percent)
print(rain_percent[1980])
# prints
{1980: '17%', 1981: '15%', 1982: '10%'}
17%
Špecifikácia párov kľúč-hodnota
Slovník môžete tiež vytvoriť a inicializovať pomocou párov hodnôt hodnôt ako argumentov kľúčových slov pre súbor diktovať () staviteľ.
Windows 10 nemôže klikať na panel úloh
population = dict(California=37253956, Colorado=5029196, Connecticut=3574097, Delaware=897934)
print(population)
# prints
{'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}
Pole n-tíc dvojíc kľúč-hodnota
Ešte ďalším spôsobom, ako vytvoriť slovník, je použiť množstvo n-tíc dvojíc kľúč-hodnota. Tu je rovnaký príklad ako vyššie.
pairs = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)]
population = dict(pairs)
print(population)
# prints
{'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}
Porozumenie diktátu
Porozumenie diktátu poskytuje skvelú syntax na inicializáciu diktu, ak môžete vypočítať hodnoty na základe kľúčov. Nasledujúci text inicializuje diktát čísel a štvorcových hodnôt pre rozsah čísel.
print({x: x**2 for x in xrange(10, 20)})
# prints
{10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}
Ako to funguje? Posledná časť ( pre x v xrange (10, 20) ) vráti rozsah čísel v zadanom rozsahu. Časť porozumenia diktátu ( {x: x ** 2 ..} ) prekročí tento rozsah a inicializuje slovník.
Práca so slovníkom Python
Čo môžete robiť so slovníkmi, keď ich vytvoríte? Môžete teda pristupovať k prvkom, aktualizovať hodnoty, odstraňovať prvky atď.
Prístup k prvkom slovníka Python
Pristupujte k prvku diktátu pomocou kľúča v zátvorkách rovnako ako vy pole alebo zoznam .
print(population['Delaware'])
# prints
897934
Ak je kľúčom číslo, úvodzovky nepotrebujete. Tento výraz potom vyzerá ako indexovanie zoznamu alebo poľa.
print(rain_percent[1980])
# prints
17%
Typ kľúča pri prístupe k nemu musí zodpovedať tomu, čo je uložené v slovníku Python. Nasledujúce chyby spôsobujú, pretože uložené kľúče sú čísla, zatiaľ čo prístupový kľúč je reťazec.
x = '1980'
print(rain_percent[x])
# results in
1 x = '1980'
----> 2 print(rain_percent[x])
KeyError: '1980'
Prístup k neexistujúcemu kľúču je chyba.
rain_percent = { 1980: '17%', 1981: '15%', 1982: '10%'}
print(rain_percent[1983])
# prints
1 rain_percent = { 1980: '17%', 1981: '15%', 1982: '10%'}
----> 2 print(rain_percent[1983])
KeyError: 1983
Ak mapovanie neexistuje, na prístup ku kľúču a poskytnutie predvolenej hodnoty použite príkaz dostať () metóda s predvolenou hodnotou ako druhým argumentom.
ako zistiť dátum vydania článku
print(rain_percent.get(1985, '0%'))
# prints
0%
Kontrola existencie
Čo keď chcete skontrolovať prítomnosť kľúča bez toho, aby ste sa k nemu skutočne pokúšali získať prístup (a prípadne naraziť na a KeyError ako je uvedené vyššie)? Môžete použiť v kľúčové slovo vo formulári kľúč v dct ktorý vráti booleovskú hodnotu.
print(1980 in rain_percent)
print('1980' in rain_percent)
# prints
True
False
Pomocou formulára obráťte podmienku (t.j. zaistite, aby sa kľúč nenachádzal v slovníku Python) kľúč nie je v dct . To je ekvivalentné so štandardnou negáciou pythonu nie je v dct .
print(1980 not in rain_percent)
print(1985 not in rain_percent)
# prints
False
True
Modifikačné prvky
Zmeňte hodnotu priradením k požadovanému kľúču.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
users['age'] = 29
print(users)
# prints
{'lastname': 'Smith', 'age': 29, 'firstname': 'John'}
Na pridanie nového mapovania do slovníka Python použite rovnakú syntax.
users['dob'] = '15-sep-1971'
print(users)
# prints
{'dob': '15-sep-1971', 'lastname': 'Smith', 'age': 29, 'firstname': 'John'}
Aktualizujte viac prvkov slovníka v jednom zábere pomocou aktualizovať () metóda.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
users.update({'age': 29, 'dob': '15-sep-1971'})
print(users)
# prints
{'dob': '15-sep-1971', 'lastname': 'Smith', 'age': 29, 'firstname': 'John'}
Nastavte predvolenú hodnotu pre kľúč pomocou setdefault () . Táto metóda nastaví hodnotu kľúča, ak mapovanie neexistuje. Vráti aktuálnu hodnotu.
# does not change current value
print(users.setdefault('firstname', 'Jane'))
# prints
John
# sets value
print(users.setdefault('city', 'NY'))
# prints
NY
# Final value
print(users)
# prints
{'lastname': 'Smith', 'age': 27, 'firstname': 'John', 'city': 'NY'}
Odstránenie prvkov
Odstráňte mapovania zo slovníka pomocou z operátor. Tento operátor nič nevracia.
Stretnete sa s a KeyError ak kľúč v slovníku neexistuje.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
del users['age']
print(users)
# prints
{'lastname': 'Smith', 'firstname': 'John'}
Použi pop () namiesto toho, keď chcete zmazanú hodnotu späť.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
print(users.pop('age'))
print(users)
# prints
27
{'lastname': 'Smith', 'firstname': 'John'}
Čo keď chcete odstrániť kľúč, ak existuje, bez toho, aby ste spôsobili chybu, ak neexistuje? Môžeš použiť pop () a upresniť Žiadny k druhému argumentu takto:
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
users.pop('foo', None)
print(users)
# prints
{'lastname': 'Smith', 'age': 27, 'firstname': 'John'}
A tu je jednoradová linka na odstránenie zväzku kľúčov zo slovníka bez toho, aby došlo k chybe na neexistujúcich kľúčoch.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27, 'dob': '15-sep-1971'}
map(lambda x : users.pop(x, None),['age', 'foo', 'dob'])
print(users)
Chcete odstrániť všetky kľúče zo slovníka? Použi jasný() metóda.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
users.clear()
print(users)
# prints
{}
Opakovanie so slovníkmi v Pythone
Python ponúka mnoho metód na opakovanie záznamov v slovníku. Vyberte si taký, ktorý vyhovuje vašim potrebám.
Opakovanie kľúčov
- Najjednoduchšia metóda na postupné spracovanie kľúčov (a prípadne hodnôt) používa slučku v tvare: | _+_ |
- Použitie metódy iterkeys () funguje úplne rovnako ako vyššie. Vyberte si, ktorý formulár chcete použiť. | _+_ |
- Tretí spôsob získavania a spracovania kľúčov v slučke zahŕňa použitie vstavanej funkcie iter () .
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
for k in users:
print(k, '=>', users[k])
# prints
lastname => Smith
age => 27
firstname => John - Keď potrebujete index spracovávaného kľúča, použite príponu vymenovať () vstavaná funkcia podľa obrázku. | _+_ |
Opakovanie párov kľúč-hodnota
- Ak chcete načítať každý pár kľúč-hodnota jediným hovorom, použite iteritems () .
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
for k in users.iterkeys():
print(k, '=>', users[k])
# prints
lastname => Smith
age => 27
firstname => John
Iterácia nad hodnotami
- Metóda itervalues () možno použiť na iteráciu všetkých hodnôt v slovníku. Aj keď táto metóda vyzerá podobne ako použitie slučky hodnoty () , je to efektívnejšie, pretože nevyberá všetky hodnoty naraz. | _+_ |
Extrahovanie polí
Nasledujúce metódy opisujú extrahovanie rôznych informácií zo slovníka Pythonu vo forme poľa. Výsledné pole je možné zacykliť pomocou bežných konštruktov pythonu. Majte však na pamäti, že vrátené pole môže byť veľké v závislosti od veľkosti slovníka. Takže to môže byť viac drahé (z hľadiska pamäte) spracovať tieto polia než pomocou vyššie uvedených metód iterátora.
Jeden prípad, kedy je prijateľné pracovať s týmito poľami, je ten, keď potrebujete odstrániť položky zo slovníka, pretože narazíte na nežiaduce prvky. Práca s iterátorom pri úprave slovníka môže spôsobiť chybu RuntimeError.
- Metóda položky () vráti pole n-tíc párov kľúč-hodnota. Tieto páry kľúč-hodnota môžete iterovať podľa nasledujúceho obrázku: | _+_ |
- Pomocou metódy získajte všetky kľúče zo slovníka kľúče () . | _+_ | Na vrátenie kľúčov použite vrátené pole. | _+_ |
- Podobným spôsobom použite metódu hodnoty () načítať všetky hodnoty v slovníku. | _+_ |
Ako používate slovníky Pythonu?
V tomto článku sme sa pokúsili pokryť najbežnejšie prípady použitia slovníkov pythonu. Nezabudnite si pozrieť všetky naše ďalšie články z Pythonu pre ešte viac tipov pre Python. Ak máte ďalšie prípady použitia, o ktorých si myslíte, že by mali byť zahrnuté, dajte nám prosím vedieť v nižšie uvedených komentároch!
ako opraviť podložku pod myš na prenosnom počítači
Kredity obrázku: viper345/Shutterstock
zdieľam zdieľam Tweet E -mail Ako získať prístup k vstavanej úrovni bublín Google v systéme AndroidAk ste sa niekedy potrebovali uistiť, že je niečo v zlomku, teraz môžete do telefónu v priebehu niekoľkých sekúnd dostať úroveň bubliny.
Čítajte ďalej Súvisiace témy- Programovanie
- Python
prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!
Kliknutím sem sa prihlásite na odber