Reklama

Pythonový slovník je dátová štruktúra podobná asociatívnemu poľu nachádzajúcemu sa v iných programovacích jazykoch. Pole alebo zoznam indexuje prvky podľa pozície. Slovník naopak indexuje prvky podľa klávesy čo môžu byť reťazce. Mysli na slovník ako na neusporiadané množiny kľúč-hodnota párov.

páry kľúč - hodnota v slovníku python

V tomto článku vám predstavíme prácu so slovníkom python.

Vytvorenie slovníka

Existuje niekoľko spôsobov, ako vytvoriť pythonový slovník. Najjednoduchšie používa inicializáciu ortézy so syntaxou pripomína JSON Ako získať Python a JavaScript na komunikáciu pomocou JSONDnes vám ukážem, ako používať JSON na odosielanie údajov z JavaScriptu do Pythonu. Budem sa zaoberať tým, ako nastaviť webový server, spolu so všetkým kódom, ktorý potrebujete. Čítaj viac .

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}

Ako tlačidlá môžete použiť aj čísla. Buďte opatrní, ak použijete čísla s pohyblivou rádovou čiarkou ako kľúče, pretože počítač ich ukladá ako aproximácie Všetko, čo potrebujete vedieť o správe pamäte RAM a pamäte

instagram viewer
RAM je krátkodobá pamäť vášho počítača. Správa pamäte má preto významný vplyv na výkon systému. Tu vysvetlíme, ako funguje RAM a či môžete urobiť niečo pre zvýšenie jeho efektívnosti. Čítaj viac .

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} tlačiť rain_percent. print rain_percent [1980] # výtlačkov. {1980: '17%', 1981: '15%', 1982: '10%'} 17%

Zadanie párov kľúč - hodnota

Môžete tiež vytvoriť a inicializovať slovník pomocou dvojíc hodnôt názvu ako argumentov kľúčových slov k dict () konštruktér.

počet obyvateľov = diktát (Kalifornia = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) tlačená populácia. # výtlačkov. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Pole niťov kľúč - hodnota

Ďalším spôsobom, ako vytvoriť slovník, je použitie radu n-tíc kľúč-hodnota. Tu je rovnaký príklad ako vyššie.

pairs = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)]] populácia = dikt (páry) tlačená populácia. # výtlačkov. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Porozumenie diktátu

Porozumenie diktu poskytuje skvelú syntax na inicializáciu diktu, ak môžete spočítať hodnoty na základe kľúčov. Nasledovné inicializuje dikt čísel a druhých hodnôt pre rozsah čísel.

tlač {x: x ** 2 pre x v xrange (10, 20)} # výtlačkov. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}

Ako to funguje? Druhá časť (pre x v xrange (10, 20)) vráti rozsah čísel v zadanom rozsahu. Časť s porozumením diktátu ({x: x ** 2 ..}) opakuje tento rozsah a inicializuje slovník.

Práca s Python Dictionary

Čo môžete robiť so slovníkmi po ich vytvorení? Môžete pristupovať k prvkom, aktualizovať hodnoty, mazať prvky atď.

Prístup k prvkom slovníka Python

Prístup k prvku diktátu pomocou kľúča v zátvorkách, rovnako ako by ste pole alebo zoznam Ako fungujú polia a zoznamy v PythonePolia a zoznamy sú jedny z najužitočnejších štruktúr údajov v programovaní - hoci ich málokto využíva ich plný potenciál. Čítaj viac .

počet obyvateľov ['Delaware'] # výtlačkov. 897934.

Ak je kľúčom číslo, citácie nepotrebujete. Výraz sa potom javí ako index alebo zoznam indexov.

print rain_percent [1980] # výtlačkov. 17%

Typ kľúča pri prístupe sa musí zhodovať s tým, čo je uložené v slovníku Python. Nasledujúce spôsobuje chybu, pretože uložené kľúče sú čísla, zatiaľ čo prístupový kľúč je reťazec.

x = '1980' tlačiť rain_percent [x] # výsledky v 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] # výtlačkov 1 rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 print rain_percent [1983] KeyError: 1983.

Ak mapovanie neexistuje, použite predvolenú hodnotu, ak mapovanie neexistuje get () metóda s predvolenou hodnotou ako druhým argumentom.

print rain_percent.get (1985, 0%) # výtlačkov. 0%

Kontrola existencie

Čo ak chcete skontrolovať prítomnosť kľúča bez toho, aby ste sa k nemu skutočne pokúsili (a prípadne narazili na a) KeyError ako je uvedené vyššie)? Môžete použiť v kľúčové slovo vo forme kľúč v dct ktorý vracia booleovský výraz.

tlač 1980 v daždi_percent. tlač '1980' v daždi_percent. # výtlačkov. To je pravda. Nepravdivé. 

Zvráťte podmienku (t. J. Uistite sa, že kľúč nie je v slovníku Python) pomocou tohto formulára kľúč nie je v dct. Toto je ekvivalent k štandardnej pythónovej negácii nie je potrebné zadať dct.

tlač 1980 nie v daždi. tlač 1985, nie v daždi. # výtlačkov. Nepravdivé. To je pravda. 

Modifikačné prvky

Zmeňte hodnotu priradením k požadovanému kľúču.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} používatelia ['vek'] = 29. používatelia tlače. # výtlačkov. {'priezvisko': 'Smith', 'vek': 29, 'meno': 'John'}

Rovnakou syntaxou pridajte nové mapovanie do slovníka Python.

používatelia ['dob'] = '15 -sep-1971 ' používatelia tlače. # výtlačkov. {'dob': '15 -sep-1971 ',' priezvisko ':' Smith ',' vek ': 29,' meno ':' John '}

Aktualizujte viac prvkov slovníka na jeden záber pomocou Aktualizácie () metóda.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.update ({'vek': 29, 'dob': '15 -sep-1971 '}) používatelia tlače. # výtlačkov. {'dob': '15 -sep-1971 ',' priezvisko ':' Smith ',' vek ': 29,' meno ':' John '}

Pomocou tlačidiel nastavte predvolenú hodnotu pre kľúč SetDefault (). Táto metóda nastavuje hodnotu kľúča, ak mapovanie neexistuje. Vracia aktuálnu hodnotu.

# nemení aktuálnu hodnotu. print users.setdefault ('meno', 'Jane') # výtlačkov. John # nastavuje hodnotu. print users.setdefault ('city', 'NY') # výtlačkov. NY # Konečná hodnota. používatelia tlače. # výtlačkov. {'lastname': 'Smith', 'age': 27, 'firstname': 'John', 'city': 'NY'}

Odstraňujú sa prvky

Odstráňte mapovania v slovníku pomocou del operátor. Tento operátor nič nevracia.

Stretnete sa s KeyError ak kľúč v slovníku neexistuje.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} del users ['age'] používatelia tlače. # výtlačkov. {'priezvisko': 'Smith', 'meno': 'John'}

Použi pop () metóda namiesto toho, keď chcete odstránenú hodnotu späť.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} print users.pop ('age') používatelia tlače. # výtlačkov. 27. {'priezvisko': 'Smith', 'meno': 'John'}

Čo ak chcete odstrániť kľúč, ak existuje, bez toho, aby spôsobil chybu, ak nie? Môžeš použiť pop () a špecifikujte nikto za druhý argument takto:

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.pop ('foo', None) používatelia tlače. # výtlačkov. {'priezvisko': 'Smith', 'vek': 27, 'meno': 'John'}

A tu je jednoplášťová vrstva na odstránenie zväzku kľúčov zo slovníka bez toho, aby spôsobila chybu neexistujúcich kľúčov.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27, 'dob': '15 -sep-1971 '} mapa (lambda x: users.pop (x, žiadne), ['vek', 'foo', 'dob']) používatelia tlače.

Chcete odstrániť všetky kľúče zo slovníka? Použi jasný() metóda.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.clear () používatelia tlače. # výtlačkov. {}

Opakovanie slovníkov Pythonu

Python poskytuje veľa metódy opakovania Ako fungujú slučky do-while v počítačovom programovaníSlučky sú jedným z prvých typov ovládacích prvkov, ktoré sa naučíte pri programovaní. Pravdepodobne viete o tom, kedy a pre slučky, ale čo sa dosiahne slučka do-while? Čítaj viac nad položkami slovníka. Vyberte si jeden podľa svojich potrieb.

Opakovanie kľúčov

  • Najjednoduchšia metóda na postupné spracovanie kľúčov (a prípadne hodnôt) používa slučku formulára:
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pre používateľov k: print k, '=>', používatelia [k] # výtlačkov. priezvisko => Smith. vek => 27 rokov. meno => John.
  • Použitie metódy iterkeys () funguje úplne rovnako ako vyššie. Vyberte si, ktorý formulár chcete použiť.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pre k v users.iterkeys (): print k, '=>', users [k] # výtlačkov. priezvisko => Smith. vek => 27 rokov. meno => John.
  • Tretia metóda na načítanie a spracovanie kľúčov v slučke spočíva v použití vstavanej funkcie iter ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pre k in iter (users): print k, '=>', users [k] # výtlačkov. priezvisko => Smith. vek => 27 rokov. meno => John.
  • Ak potrebujete index spracovávaného kľúča, použite Výpočet () vstavaná funkcia, ako je znázornené.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pre index zadajte číslo v enumerate (users): print index, key, '=>', users [k] # výtlačkov. 0 priezvisko => John. 1 vek => John. 2 meno => John.

Opakovanie párov kľúč - hodnota

  • Ak chcete načítať každý pár kľúč - hodnota jedným hovorom, použite iteritems ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pre k, v v súbore users.iteritems (): print k, '=>', v. # výtlačkov. priezvisko => Smith. vek => 27 rokov. meno => John.

Iterovanie nad hodnoty

  • Metóda itervalues ​​() je možné použiť na iteráciu všetkých hodnôt v slovníku. Aj keď táto metóda vyzerá podobne ako pri použití slučky hodnoty (), je efektívnejšia, pretože nevyťažuje všetky hodnoty naraz.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} for value in users.itervalues ​​(): tlačená hodnota. # výtlačkov. Smith. 27. John.

Extrahovanie polí

Nasledujúce metódy opisujú extrahovanie rôznych informácií zo slovníka Python vo forme poľa. Výsledné pole sa môže opakovať použitím bežných pythonových konštruktov. Nezabúdajte však, že vrátené pole môže byť veľké v závislosti od veľkosti slovníka. Môže to byť viac drahý (z pamäti) spracovať tieto polia ako pomocou vyššie uvedených iteračných metód.

Jedným z prípadov, keď je prijateľné pracovať s týmito poliami, je prípad, keď potrebujete odstrániť položky zo slovníka, keď narazíte na nežiaduce prvky. Práca s iterátorom pri úprave slovníka môže spôsobiť RuntimeError.

  • Metóda položky () vráti pole n-tíc kľúč-hodnota. Môžete iterovať cez tieto páry kľúč - hodnota, ako je to znázornené:
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pre k, v v súbore users.items (): print k, '=>', v. # výtlačkov. priezvisko => Smith. vek => 27 rokov. meno => John.
  • Pomocou metódy získajte všetky kľúče v slovníku kľúča ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} print users.keys () # výtlačkov. ['priezvisko', 'vek', 'krstné meno']

    Na vrátenie kľúčov použite vrátené pole.

    pre k v users.keys (): print k, '=>', users [k] # výtlačkov. priezvisko => Smith. vek => 27 rokov. meno => John.
  • Podobným spôsobom použite metódu hodnoty () načítať všetky hodnoty v slovníku.
    for value in users.values ​​(): tlačená hodnota. # výtlačkov. Smith. 27. John. 

Ako používate slovníky Python?

V tomto článku sme sa pokúsili pokryť najbežnejšie prípady použitia pythonových slovníkov. Nezabudnite sa pozrieť na všetky naše ďalšie články Pythonu 10 základných príkladov Pythonu, ktoré vám pomôžu rýchlo sa učiťTento článok základných príkladov pythonu je určený pre tých, ktorí už majú skúsenosti s programovaním a jednoducho chcú prejsť na Python čo najrýchlejšie. Čítaj viac navždy viac tipov Pythonu 5 kurzov, ktoré vás prevedú od Python Beginner k ProTýchto päť kurzov vás naučí všetko o programovaní v Pythone, jednom z najhorúcejších jazykov práve teraz. Čítaj viac . Ak máte iné prípady použitia, ktoré by podľa vás mali byť zahrnuté, dajte nám vedieť v komentároch nižšie!

Kredity obrázkov: viper345 / Shutterstock