Slovník v Python se syntaxí a příkladem

V čem je slovník Python?

A Slovník v Python je neuspořádaný a proměnlivý soubor datových hodnot, který obsahuje páry klíč–hodnota. Každý pár klíč–hodnota ve slovníku mapuje klíč ke své přidružené hodnotě, čímž je optimalizován. Slovník v pythonu je deklarován uzavřením seznamu párů klíč-hodnota oddělených čárkami pomocí složených závorek ({}). Python Slovník je rozdělen do dvou prvků: Klíče a Hodnoty.

  • Klíče budou jedním prvkem
  • Hodnoty mohou být seznam nebo seznam v seznamu, čísla atd.

Syntaxe pro Python Slovník

Dict = { ' Tim': 18,  xyz,.. }

Slovník je uveden ve složených závorkách, uvnitř těchto složených závorek jsou deklarovány klíče a hodnoty. Každý klíč je od své hodnoty oddělen dvojtečkou (:), zatímco čárky oddělují jednotlivé prvky.

Syntaxe pro Python Slovník

Vlastnosti slovníkových klíčů

Při používání slovníkových kláves jsou důležité dva body

  • Více než jeden záznam na klíč není povolen (není povolen žádný duplicitní klíč)
  • Hodnoty ve slovníku mohou být libovolného typu, zatímco klíče musí být neměnné jako čísla, n-tice
  • Klíče slovníku rozlišují velká a malá písmena - Stejný název klíče, ale s různými velikostmi písmen, se s nimi zachází jako s různými klíči Python slovníky.

Python 2 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}   
print (Dict['Tiffany'])

Python 3 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}   
print((Dict['Tiffany']))
  • V kódu máme název slovníku „Dict“
  • Ve slovníku jsme uvedli jméno a věk osoby, kde jméno je „Klíče“ a věk je „hodnota“
  • Nyní spusťte kód
  • Získává věk tiffanyho ze slovníku.

Python Slovníkové metody

Kopírování slovníku

Můžete také zkopírovat celý slovník do nového slovníku. Zde jsme například zkopírovali náš původní slovník do nového slovníku s názvem „Chlapci“ a „Dívky“.

Python 2 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}	
studentX=Boys.copy()
studentY=Girls.copy()
print studentX
print studentY

Python 3 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}	
studentX=Boys.copy()
studentY=Girls.copy()
print(studentX)
print(studentY)
  • Máme originální slovník (Dict) se jménem a věkem chlapců a dívek pohromadě
  • Chceme však seznam chlapců oddělený od seznamu dívek, takže jsme definovali prvek chlapců a dívek v samostatném slovníku s názvem „Chlapci“ a „Dívky“.
  • Nyní jsme opět vytvořili nový název slovníku „student X“ a „student Y“, kde všechny klíče a hodnoty chlapeckého slovníku jsou zkopírovány do studenta X a dívky budou zkopírovány do studentY
  • Takže teď se nemusíte dívat do celého seznamu v hlavním slovníku (Dict), abyste zjistili, kdo je chlapec a kdo je dívka, stačí vytisknout student X, pokud chcete seznam chlapců a StudentY, pokud chcete seznam dívek
  • Když tedy spustíte slovník studenta X a studenta Y, poskytne všechny prvky přítomné ve slovníku „chlapců“ a „dívek“ odděleně.

Aktualizace slovníku

Slovník můžete také aktualizovat přidáním nového záznamu nebo páru klíč–hodnota k existujícímu záznamu nebo odstraněním existujícího záznamu. Zde v příkladu přidáme do našeho stávajícího slovníku další jméno, „Sarah“.

Python 2 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Dict.update({"Sarah":9})
print Dict

Python 3 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Dict.update({"Sarah":9})
print(Dict)
  • Náš stávající slovník „Dict“ nemá jméno „Sarah“.
  • K přidání Sarah do našeho stávajícího slovníku používáme metodu Dict.update
  • Nyní spusťte kód, přidá Sarah do našeho stávajícího slovníku

Odstraňte klíče ze slovníku

Python slovník vám dává svobodu odstranit jakýkoli prvek ze seznamu slovníků. Předpokládejme, že nechcete jméno Charlie v seznamu, takže můžete odstranit klíčový prvek pomocí následujícího kódu.

Python 2 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
del Dict ['Charlie']
print Dict

Python 3 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
del Dict ['Charlie']
print(Dict)

Když spustíte tento kód, měl by vytisknout seznam slovníků bez Charlieho.

  • Použili jsme kód del Dict
  • Když byl kód spuštěn, vymazal Charlie z hlavního slovníku

Metoda slovníkových položek().

Metoda items() vrací seznam n-ticových párů (klíče, hodnota) ve slovníku.

Python 2 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "Students Name: %s" % Dict.items()

Python 3 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("Students Name: %s" % list(Dict.items()))
  • Používáme metodu code items() pro náš Dict.
  • Po provedení kódu vrátí seznam položek (klíčů a hodnot) ze slovníku

Zkontrolujte, zda daný klíč již ve slovníku existuje

U daného seznamu můžete také zkontrolovat, zda náš dětský slovník existuje v hlavním slovníku nebo ne. Zde máme dva podslovníky „Boys“ a „Girls“, nyní chceme zkontrolovat, zda náš slovník Boys existuje v našem hlavním „Dictu“ nebo ne. K tomu používáme metodu cyklu for s metodou else if.

Python 2 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in Boys.keys():
    if key in Dict.keys():
        print True
    else:       
        print False


Python 3 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in list(Boys.keys()):
    if key in list(Dict.keys()):
        print(True)
    else:       
        print(False)
  • Jedno forloop v kódu zkontroluje každý klíč v hlavním slovníku na klíče pro chlapce
  • Pokud existuje v hlavním slovníku, měl by vypsat hodnotu true, jinak by měl vypsat hodnotu false
  • Když kód spustíte, vypíše třikrát „True“, protože v našem slovníku „Boys“ máme tři prvky
  • Znamená to tedy, že „Chlapci“ existují v našem hlavním slovníku (Dict)

Řazení slovníku

Ve slovníku můžete prvky také třídit. Chceme-li například vytisknout názvy prvků našeho slovníku abecedně, musíme použít smyčku for. Podle toho seřadí každý prvek slovníku.

Python 2 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = Dict.keys()
Students.sort()
for S in Students:
      print":".join((S,str(Dict[S])))

Python 3 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = list(Dict.keys())
Students.sort()
for S in Students:
      print(":".join((S,str(Dict[S]))))
  • Deklarovali jsme proměnnou studenti pro náš slovník „Dict“.
  • Poté použijeme kód Students.sort, který seřadí prvek uvnitř našeho slovníku
  • Abychom však seřadili každý prvek ve slovníku, spustíme cyklus for deklarováním proměnné S
  • Nyní, když spustíme kód, smyčka for zavolá každý prvek ze slovníku a vypíše řetězec a hodnotu v pořadí

Python Funkce vestavěné do slovníku

Metoda slovníku len().

Funkce len() udává počet párů ve slovníku.

Například,

Python 2 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "Length : %d" % len (Dict)

Python 3 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("Length : %d" % len (Dict))

Když je funkce len (Dict) provedena, dává výstup na „4“, protože v našem slovníku jsou čtyři prvky

Typy proměnných

Python nevyžaduje explicitní deklaraci rezervního paměťového prostoru; děje se to automaticky. Použije se přiřazení hodnot proměnné „=“ rovnítko. Kód pro určení typu proměnné je „%type (Dict).“

Python 2 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "variable Type: %s" %type (Dict)

Python 3 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("variable Type: %s" %type (Dict))
  • Pro zjištění typu proměnné použijte kód %type
  • Když byl kód spuštěn, říká, že typ proměnné je slovník

Python Metoda List cmp().

Používá se metoda porovnání cmp(). Python porovnat hodnoty a klíče dvou slovníků. Pokud metoda vrátí 0, pokud jsou oba slovníky stejné, 1, pokud dic1 > dict2 a -1, pokud dict1 < dict2.

Python 2 Příklad

Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}	
print cmp(Girls, Boys)

Python 3 Příklad

cmp is not supported in Python 3
  • Ve slovníku máme dvě jména, „Chlapci“ a „Dívky“.
  • Cokoli deklarujete jako první v kódu „cmp(Girls, Boys)“, bude považováno za slovník 1. V našem případě jsme jako první deklarovali „Dívky“, takže to bude považováno za slovník 1 a chlapci za slovník 2
  • Když je kód spuštěn, vypíše -1, což znamená, že náš slovník 1 je menší než slovník 2.

slovník str(diktát)

Pomocí metody Str() můžete slovník vytvořit ve formátu řetězce pro tisk.

Python 2 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "printable string:%s" % str (Dict)

Python 3 Příklad

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("printable string:%s" % str (Dict))
  • Použijte kód % str (Dict)
  • Vrátí prvky slovníku do tisknutelného formátu řetězce

Zde je seznam všech slovníkových metod

Metoda Description Syntax
kopírovat () Zkopírujte celý slovník do nového slovníku dict.copy()
aktualizace () Aktualizujte slovník přidáním nového záznamu nebo páru klíč-hodnota k existujícímu záznamu nebo odstraněním existujícího záznamu. Dict.update([other])
položky () Vrátí seznam n-ticových párů (Klíče, Hodnota) ve slovníku. dictionary.items()
řadit () Prvky můžete třídit dictionary.sort()
len () Udává počet dvojic ve slovníku. len (diktát)
cmp() Porovnejte hodnoty a klíče dvou slovníků cmp(dikt1, dikt2)
str() Vytvořte slovník do formátu řetězce pro tisk str(diktát)

Slučování slovníků

Zde pochopíme, jak sloučit dva dané slovníky do jednoho slovníku.

Mám dva slovníky, jak je uvedeno níže:

Slovník1: můj_dikt1

my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}

Slovník 2: my_dict2

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

Sloučíme oba tyto slovníky my_dict1 a my_dict2 a vytvoříme jediný slovník s namemy_dict.

Sloučit dva slovníky pomocí metody update().

Metoda update() nám pomůže sloučit jeden slovník s druhým. V příkladu aktualizujeme my_dict1 na my_dict2. Po použití metody update() bude mít my_dict1 obsah my_dict2, jak je uvedeno níže:

my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

my_dict1.update(my_dict2)

print(my_dict1)

Výstup:

{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

Slučování slovníků pomocí metody ** (od Python 3.5 a dále)

** se nazývá Kwargs in Python, a bude to fungovat s Python verze 3.5+. Pomocí ** můžeme sloučit dva slovníky a vrátí sloučený slovník. Použití ** před proměnnou nahradí proměnnou s celým jejím obsahem.

Zde je pracovní příklad použití ** ke sloučení dvou adresářů.

my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

my_dict =  {**my_dict1, **my_dict2} 

print(my_dict)

Výstup:

{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

Test členství ve slovníku

Můžete otestovat, zda je klíč přítomný ve slovníku nebo ne. Tento test lze provést pouze na klíči slovníku, nikoli na hodnotě. Test členství se provádí pomocí in klíčové slovo. Když zkontrolujete klíč ve slovníku pomocí in klíčové slovo, vrátí výraz true, pokud je klíč přítomen, a false, pokud není.

Zde je příklad, který ukazuje test členské lodi ve slovníku.

my_dict = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
print("email" in my_dict)
print("location" in my_dict)
print("test" in my_dict)

Výstup:

True
True
False

Shrnutí

  • Slovníky v programovacím jazyce jsou typem datové struktury používané k ukládání nějakým způsobem propojených informací.
  • Python Slovník je definován do dvou prvků Keys a Values.
  • Slovníky neukládají své informace v žádném konkrétním pořadí, takže nemusíte získat své informace zpět ve stejném pořadí, v jakém jste je zadali.
  • Klíče budou jedním prvkem
  • Hodnoty mohou být seznam nebo seznam v seznamu, čísla atd.
  • Více než jeden záznam na klíč není povolen (není povolen žádný duplicitní klíč)
  • Hodnoty ve slovníku mohou být libovolného typu, zatímco klíče musí být neměnné jako čísla, n-tice nebo řetězce.
  • Klíče slovníku rozlišují velká a malá písmena - Stejný název klíče, ale s různými velikostmi písmen, se s nimi zachází jako s různými klíči Python slovníky.