Słowniki¶

Więcej: https://docs.python.org/3/tutorial/datastructures.html#dictionaries

Słowniki stowarzyszają klucze z wartościami. Klucze stanowią zbiór (nie powtarzają się, muszą być hashowalne).

Konstrukcja przez pary klucz: wartość:

In [1]:
d = {1 : 'a', 2 : 'b', 'abc' : [1, 2, 3], (1,2) : 1}

Odczytanie wartości

In [2]:
print(d[1])
print(d[(1, 2)])
a
1

Nowa wartość lub zmiana starej

In [3]:
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)

In [4]:
del d[1]
print(d)
{2: 'b', 'abc': 'def', (1, 2): 1}

Iteracja po kluczach

In [5]:
for k in d:  # = for k in d.keys()
    print(k)
2
abc
(1, 2)

Iteracja po wartościach

In [6]:
for v in d.values():
    print(v)
b
def
1

Iteracja po parach klucz-wartość

In [7]:
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):

In [8]:
{n: n ** 2 for n in range(5)}
Out[8]:
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

"Bijektywny" słownik i jego odwrotność:

In [9]:
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:

In [10]:
{}
Out[10]:
{}

Konstrukcja słownika z ciągu par klucz-wartość:

In [11]:
dict([(1,2), (2,3), "AB"])
Out[11]:
{1: 2, 2: 3, 'A': 'B'}

Konstrukcja słownika przez parametry nazwane:

In [12]:
dict(k1='a', k2='b')
Out[12]:
{'k1': 'a', 'k2': 'b'}

Sprawdzenie, czy klucz jest w słowniku:

In [13]:
print(1 in d1)
print('b' in d2)
print('x' in d2)
False
False
False