reklama

Pythonový slovník je datová struktura podobná asociativnímu poli nalezenému v jiných programovacích jazycích. Pole nebo seznam indexuje prvky podle pozice. Slovníček naopak indexuje prvky podle klíče což mohou být řetězce. Mysli na slovník jako neuspořádané sady key-value páry.

páry klíč-hodnota slovníku python

V tomto článku vám představíme práci se slovníkem python.

Vytvoření slovníku

Existuje několik způsobů, jak vytvořit pythonový slovník. Nejjednodušší používá inicializaci rovnátka se syntaxí připomínající JSON Jak získat Python a JavaScript pro komunikaci pomocí JSONDnes vám ukážu, jak pomocí JSON odesílat data z JavaScriptu do Pythonu. Pokryju, jak nastavit webový server, spolu se všemi potřebnými kódy. Přečtěte si více .

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

Jako klávesy můžete také použít čísla. Buďte však opatrní pomocí čísel s pohyblivou řádovou čárkou jako klíčů, protože počítač je ukládá jako přibližné hodnoty Vše, co potřebujete vědět o paměti RAM a správě pamětiRAM je krátkodobá paměť vašeho počítače. Správa paměti má tedy významný dopad na výkon systému. Zde vysvětlujeme, jak RAM pracuje a zda můžete udělat něco pro zvýšení jeho účinnosti.

instagram viewer
Přečtěte si více .

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} vytisknout rain_percent. print rain_percent [1980] # tisky. {1980: '17%', 1981: '15%', 1982: '10%'} 17%

Určení párů klíč-hodnota

Můžete také vytvořit a inicializovat slovník pomocí dvojic hodnot názvu jako argumentů klíčových slov k dict () konstruktér.

populace = dikt (Kalifornie = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) tisk populace. # tisky. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Pole n-klíčových hodnot

Dalším způsobem vytváření slovníku je použití řady n-tic. Zde je stejný příklad jako výše.

pairs = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)]] populace = dikt (páry) tisk populace. # tisky. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Porozumění diktátu

Rozumí diktu poskytuje skvělou syntaxi pro inicializaci diktu, pokud můžete vypočítat hodnoty na základě klíčů. Následující inicializuje dikt čísel a čtvercových hodnot pro rozsah čísel.

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

Jak to funguje? Druhá část (pro x v xrange (10, 20)) vrací rozsah čísel v zadaném rozsahu. Část s porozuměním diktátu ({x: x ** 2 ..}) opakuje tento rozsah a inicializuje slovník.

Práce se slovníkem Python

Co můžete dělat se slovníky, jakmile jste je vytvořili? Můžete přistupovat k prvkům, aktualizovat hodnoty, mazat prvky atd.

Přístup k Python Dictionary Elements

Přístup k prvku diktátu pomocí klíče v závorce, stejně jako byste pole nebo seznam Jak pole a seznamy fungují v PythonuPole a seznamy jsou jedny z nejužitečnějších datových struktur v programování - ačkoli je jich jen málo lidí plně využívá. Přečtěte si více .

tisková populace ['Delaware'] # tisky. 897934.

Pokud je klíčem číslo, citace nepotřebujete. Výraz se pak jeví jako indexování seznamu nebo pole.

print rain_percent [1980] # tisky. 17%

Typ klíče musí při přístupu odpovídat tomu, co je uloženo ve slovníku Python. Následující způsobuje chybu, protože uložené klíče jsou čísla, zatímco přístupový klíč je řetězec.

x = '1980' print rain_percent [x] # výsledky v 1 x = '1980' > 2 print rain_percent [x] KeyError: '1980'

Přístup k neexistujícímu klíči je chyba.

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} print rain_percent [1983] # tiskne 1 rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 print rain_percent [1983] KeyError: 1983.

Chcete-li získat přístup ke klíči a poskytnout výchozí hodnotu, pokud mapování neexistuje, použijte dostat() metoda s výchozí hodnotou jako druhý argument.

print rain_percent.get (1985, '0%') # tisky. 0%

Kontrola existence

Co když chcete zkontrolovat přítomnost klíče, aniž byste se o něj skutečně pokusili (a případně narazili na) KeyError jak je uvedeno výše)? Můžete použít v klíčové slovo ve formě klíč v dct který vrací boolean.

tisk 1980 in rain_percent. tisk '1980' v dešti_percent. # tisky. Skutečný. Nepravdivé. 

Obrátit podmínku (tj. Zajistit, aby klíč nebyl ve slovníku Python) pomocí formuláře klíč není v dct. To odpovídá standardní pythonové negaci nezadávejte dct.

tisk 1980 ne v dešti_percent. tisk 1985 ne v dešti_percent. # tisky. Nepravdivé. Skutečný. 

Modifikační prvky

Změňte hodnotu přiřazením požadovaného klíče.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} uživatelé ['věk] = 29. uživatelé tisku. # tisky. {'lastname': 'Smith', 'age': 29, 'firstname': 'John'}

Použijte stejnou syntaxi k přidání nového mapování do slovníku Python.

uživatelé ['dob'] = '15 -sep-1971 ' uživatelé tisku. # tisky. {'dob': '15 -sep-1971 ',' lastname ':' Smith ',' age ': 29,' firstname ':' John '}

Aktualizujte více prvků slovníku na jeden snímek pomocí Aktualizace() metoda.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.update ({'age': 29, 'dob': '15 -sep-1971 '}) uživatelé tisku. # tisky. {'dob': '15 -sep-1971 ',' lastname ':' Smith ',' age ': 29,' firstname ':' John '}

Pomocí tlačítka nastavte výchozí hodnotu pro klíč setdefault (). Tato metoda nastavuje hodnotu klíče, pokud mapování neexistuje. Vrací aktuální hodnotu.

# nemění aktuální hodnotu. print users.setdefault ('křestní jméno', 'Jane') # tisky. John # nastavuje hodnotu. print users.setdefault ('city', 'NY') # tisky. NY # Konečná hodnota. uživatelé tisku. # tisky. {'lastname': 'Smith', 'age': 27, 'firstname': 'John', 'city': 'NY'}

Mazání prvků

Odstraňte mapování ve slovníku pomocí del operátor. Tento operátor nic nevrací.

Setkáte se KeyError pokud klíč ve slovníku neexistuje.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} del users ['age'] uživatelé tisku. # tisky. {'lastname': 'Smith', 'firstname': 'John'}

Použijte pop () metoda místo toho, když chcete smazanou hodnotu zpět.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} print users.pop ('age') uživatelé tisku. # tisky. 27. {'lastname': 'Smith', 'firstname': 'John'}

Co když chcete odstranit klíč, pokud existuje, aniž by došlo k chybě, pokud tomu tak není? Můžeš použít pop () a určit Žádný pro druhý argument následovně:

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.pop ('foo', None) uživatelé tisku. # tisky. {'lastname': 'Smith', 'age': 27, 'firstname': 'John'}

A zde je jednoplášťová vazba, která smaže skupinu klíčů ze slovníku, aniž by způsobila chybu neexistujících klíčů.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27, 'dob': '15 -sep-1971 '} mapa (lambda x: users.pop (x, None), ['age', 'foo', 'dob']) uživatelé tisku.

Chcete odstranit všechny klíče ze slovníku? Použijte Průhledná() metoda.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.clear () uživatelé tisku. # tisky. {}

Opakování slovníků Pythonu

Python poskytuje mnoho metody opakování Jak fungují smyčky do-while v počítačovém programováníSmyčky jsou jedním z prvních typů ovládacích prvků, které se naučíte při programování. Pravděpodobně víte něco o smyčkách a smyčkách, ale co se dosáhne smyčky do-while? Přečtěte si více nad položkami slovníku. Vyberte si jeden podle svých potřeb.

Opakování přes klíče

  • Nejjednodušší metoda pro zpracování klíčů (a případně hodnot) v sekvenci používá smyčku formuláře:
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pro uživatele k: print k, '=>', uživatelé [k] # tisky. příjmení => Smith. věk => 27. křestní jméno => John.
  • Pomocí metody iterkeys () funguje úplně stejně jako výše. Vyberte si, který formulář chcete použít.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pro k v users.iterkeys (): print k, '=>', users [k] # tisky. příjmení => Smith. věk => 27. křestní jméno => John.
  • Třetí metoda načítání a zpracování klíčů ve smyčce zahrnuje použití vestavěné funkce iter ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} for k in iter (users): print k, '=>', users [k] # tisky. příjmení => Smith. věk => 27. křestní jméno => John.
  • Pokud potřebujete index zpracovávaného klíče, použijte vyjmenovat() vestavěná funkce, jak je znázorněno.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pro index, enumerate key (users): print index, key, '=>', users [k] # tisky. 0 příjmení => John. 1 věk => John. 2 křestní jméno => John.

Opakování přes páry klíč - hodnota

  • Chcete-li načíst každý pár klíč-hodnota jediným hovorem, použijte iteritems ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pro k, v v users.iteritems (): print k, '=>', v. # tisky. příjmení => Smith. věk => 27. křestní jméno => John.

Iterace nad hodnotami

  • Metoda itervalues ​​() lze použít k iteraci všech hodnot ve slovníku. I když tato metoda vypadá podobně jako použití smyčky hodnoty (), je efektivnější, protože neextrahuje všechny hodnoty najednou.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} for value in users.itervalues ​​(): print value. # tisky. Kovář. 27. John.

Extrahování polí

Následující metody popisují extrahování různých informací o slovníku Python ve formě pole. Výsledné pole lze opakovat pomocí běžných pythonových konstruktů. Mějte však na paměti, že vrácené pole může být velké v závislosti na velikosti slovníku. Takže to může být víc drahé (paměťové) zpracovat tato pole než pomocí výše uvedených iteračních metod.

Jedním z případů, kdy je přijatelné pracovat s těmito poli, je situace, kdy potřebujete odstranit položky ze slovníku, když narazíte na nežádoucí prvky. Práce s iterátorem při úpravě slovníku může způsobit RuntimeError.

  • Metoda položky () vrátí pole n-tic s hodnotou klíče. Můžete iterovat přes tyto páry klíč - hodnota, jak je znázorněno:
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} pro k, v v souboru users.items (): print k, '=>', v. # tisky. příjmení => Smith. věk => 27. křestní jméno => John.
  • Pomocí metody získejte všechny klíče ve slovníku klíče ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} print users.keys () # tisky. ['příjmení', 'věk', 'křestní jméno']

    K vrácení klíčů použijte vrácené pole.

    pro k v users.keys (): print k, '=>', uživatelé [k] # tisky. příjmení => Smith. věk => 27. křestní jméno => John.
  • Podobným způsobem použijte metodu hodnoty () načte všechny hodnoty ve slovníku.
    for value in users.values ​​(): print value. # tisky. Kovář. 27. John. 

Jak používáte Python slovníky?

V tomto článku jsme se pokusili pokrýt nejčastější případy použití slovníků pythonu. Nezapomeňte se podívat na všechny naše další články Pythonu 10 základních příkladů Pythonu, které vám pomohou rychle se učitTento článek základních příkladů pythonu je určen těm, kteří již mají zkušenosti s programováním a chtějí jednoduše přejít na Python co nejrychleji. Přečtěte si více navždy další tipy Pythonu 5 kurzů, které vás zavedou od Python Beginner k ProTěchto pět kurzů vás naučí vše o programování v Pythonu, jednom z nejžhavějších jazyků právě teď. Přečtěte si více . Pokud máte jiné případy použití, o kterých si myslíte, že by měly být zahrnuty, dejte nám prosím vědět v komentářích níže!

Obrázek Kredity: viper345 / Shutterstock