
William Charles
0
4979
1270
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.
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žití inicializace rovnátka, se syntaxí připomínající JSON Jak komunikovat Python a JavaScript pomocí JSON Jak získat Python a JavaScript pro komunikaci pomocí JSON Dnes vám ukážu, jak pomocí JSON posílat data z JavaScriptu do Pythonu . Pokryju, jak nastavit webový server, spolu se všemi potřebnými kódy. .
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27
Jako klávesy můžete také použít čísla. Buďte však opatrní při používání čísel s pohyblivou řádovou čárkou jako klíčů, protože počítač je ukládá jako přibližné údaje Vše, co potřebujete vědět o paměti RAM a správě paměti Vše, co potřebujete vědět o paměti RAM a správě paměti RAM je krátkodobá paměť 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 efektivity. .
rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' print rain_percent print rain_percent [1980] # tisků 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) tisknout populace # tisky 'Connecticut': 3574097, 'Delaware': 897934, 'Kalifornie': 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) tisková populace # výtisky 'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196
Porozumění diktátu
Porozumění 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 in xrange (10, 20) # vý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 měli pole nebo seznam Jak fungují pole a seznamy v Pythonu Jak fungují pole a seznamy v Pythonu Pole a seznamy jsou některé z nejužitečnějších datových struktur v programování - i když je jich jen málo lidí využívá naplno. .
tisková populace ['Delaware'] # print 897934
Pokud je klíčem číslo, citace nepotřebujete. Výraz se pak jeví jako indexování seznamu nebo pole.
print rain_percent [1980] # tisků 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] # vede k 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%') # tiskne 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' in rain_percent # tiskne True False
Zvráťte podmínku (tj. Ujistěte se, že klíč není 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 # tiskne False True
Modifikační prvky
Změňte hodnotu přiřazením požadovaného klíče.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users ['age'] = 29 print users # prints 'lastname': 'Smith', 'age': 29, 'křestní jméno': 'John'
Použijte stejnou syntaxi k přidání nového mapování do slovníku Python.
users ['dob'] = '15 -sep-1971 'print users # prints ' 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 ') print users # print '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 ('firstname', 'Jane') # printts John # nastaví hodnotu print users.setdefault ('city', 'NY') # print NY # Konečná hodnota print users # print ' příjmení ':' Smith ',' věk ': 27,' křestní jméno ':' 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íč neexistuje ve slovníku.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 del users ['age'] print users # prints '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') print users # print 27 27 '' lastname ':' Smith ',' firstname ': 'John'
Co když chcete odstranit klíč, pokud existuje, aniž by došlo k chybě, pokud ne? 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) print users # prints 'lastname': 'Smith', 'age ': 27,' křestní jméno ':' John '
A zde je jednoplášťový soubor, který smaže skupinu klíčů ze slovníku, aniž by způsobil chybu neexistujících klíčů..
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27, 'dob': '15 -sep-1971 ' map (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 () print users # print
Opakování slovníků Pythonu
Python poskytuje mnoho metod pro vytváření smyček Jak fungují smyčky do-while v počítačovém programová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? 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 for k in users: print k, '=>', users [k] # printts lastname => Smith age = > 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 for k in users.iterkeys (): print k, '=>', users [k] # printts lastname = > Smith age => 27 firstname => 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] # printts lastname => 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 for index, key in enumerate (users): print index, key, '=>', users [k] # tiskne 0 příjmení => John 1 age => John 2 firstname => 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 for k, v in users.iteritems (): print k, '=>', v # prints lastname => 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 pro hodnotu v users.itervalues (): print value # print Smith 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 for k, v in users.items (): print k, '=>', v # printts lastname => 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 () # prints ['lastname', 'age', 'firstname']
K vrácení klíčů použijte vrácené pole.
pro k v users.keys (): print k, '=>', users [k] # printts lastname => Smith age => 27 firstname => John
- Podobným způsobem použijte metodu hodnoty () načte všechny hodnoty ve slovníku.
for value in users.values (): print value # print Smith 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í pythonových slovníků. Nezapomeňte si prohlédnout všechny naše další články v Pythonu. 10 Základní příklady Pythonu, které vám pomohou rychle se naučit 10 Základní příklady Pythonu, které vám pomohou rychle se naučit Tento článek základních příkladů Pythonu je určen těm, kteří již mají nějaké zkušenosti s programováním a jednoduše chtějí přechod na Python co nejrychleji. pro ještě více tipů pro Python 5 kurzů, které vás zavedou od Python začátečníka k Pro 5 kurzů, které vás vezmou od Python začátečníka k Pro Těchto pět kurzů vás naučí vše o programování v Pythonu, jednom z nejžhavějších jazyků právě teď. . 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