Słowniki stowarzyszają klucze z wartościami. Klucze stanowią zbiór (nie powtarzają się, muszą być hashowalne).
Konstrukcja przez pary klucz: wartość:
d = {1 : 'a', 2 : 'b', 'abc' : [1, 2, 3], (1,2) : 1}
Odczytanie wartości
print(d[1])
print(d[(1, 2)])
a 1
Nowa wartość lub zmiana starej
d[1] = 1000
d['abc'] = 'def'
print(d)
{1: 1000, 2: 'b', 'abc': 'def', (1, 2): 1}
Usunięcie klucza (i stowarzyszonej z nim wartości)
del d[1]
print(d)
{2: 'b', 'abc': 'def', (1, 2): 1}
Iteracja po kluczach
for k in d: # = for k in d.keys()
print(k)
2 abc (1, 2)
Iteracja po wartościach
for v in d.values():
print(v)
b def 1
Iteracja po parach klucz-wartość
for k, v in d.items():
print(k, v)
2 b abc def (1, 2) 1
Schemat konstrukcji słowników (słowniki składane):
{n: n ** 2 for n in range(5)}
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
"Bijektywny" słownik i jego odwrotność:
d1 = {"dog": "pies", "cat": "kot", "dragon": "smok"}
d2 = {v : k for k, v in d1.items()}
print(d1, d2)
{'dog': 'pies', 'cat': 'kot', 'dragon': 'smok'} {'pies': 'dog', 'kot': 'cat', 'smok': 'dragon'}
Pusty słownik:
{}
{}
Konstrukcja słownika z ciągu par klucz-wartość:
dict([(1,2), (2,3), "AB"])
{1: 2, 2: 3, 'A': 'B'}
Konstrukcja słownika przez parametry nazwane:
dict(k1='a', k2='b')
{'k1': 'a', 'k2': 'b'}
Sprawdzenie, czy klucz jest w słowniku:
print(1 in d1)
print('b' in d2)
print('x' in d2)
False False False