07.1 Czym jest słownik?

>>> x = []        
>>> y = {}        


>>> y[0] = 'Witaj'
>>> y[1] = 'Do zobaczenia'


>>> x[0] = 'Witaj'
Traceback (innermost last):
  File "<stdin>", line 1, in ?
IndexError: list assignment index out of range


>>> print(y[0])
Witaj
>>> y[1] + ", Przyjacielu!"
'Do zobaczenia, Przyjacielu!'


>>> y["dwa"] = 2
>>> y["pi"] = 3.14
>>> y["dwa"] * y["pi"]
6.28

>>> angielski_na_polski = {}     #A
>>> angielski_na_polski["red"] = "czerwony"    #B
>>> angielski_na_polski["blue"] = "niebieski"
>>> angielski_na_polski["zielony"] = "zielony" 
>>> print("Red oznacza ", angielski_na_polski['red'])    #C
Red oznacza czerwony


07.2 7.2 Inne działania na słownikach

>>> angielski_na_polski = {"red": "czerwony", "blue": "niebieski", "green": "zielony"}

>>> len(angielski_na_polski)
3


>>> list(angielski_na_polski.keys())
['red', 'blue', 'green']


>>> list(angielski_na_polski.values())
['czerwony', 'niebieski', 'zielony']


>>> list(angielski_na_polski.items())
[('red', 'czerwony'), ('blue', 'niebieski'), ('green', 'zielony')]


>>> list(angielski_na_polski.items())
[('red', 'czerwony'), ('blue', 'niebieski'), ('green', 'zielony')]
>>> del angielski_na_polski['green']
>>> list(angielski_na_polski.items())
[('red', 'czerwony'), ('blue', 'niebieski')]


>>> 'red' in angielski_na_polski
True
>>> 'orange' in angielski_na_polski
False


>>> print(angielski_na_polski.get('blue', 'Brak tłumaczenia'))
niebieski
>>> print(angielski_na_polski.get('pink', 'Brak tłumaczenia'))
Brak tłumaczenia


>>> print(angielski_na_polski.setdefault('pink', 'Brak tłumaczenia'))
Brak tłumaczenia


>>> x = {0: 'zero', 1: 'jeden'}
>>> y = x.copy()
>>> y
{0: 'zero', 1: 'jeden'}


>>> x = {0: "zero", 1: "jeden"}
>>> z = {1: "Jeden", 2: "Dwa"}
>>> x.update(z)
>>> x
{0: 'zero', 1: 'Jeden', 2: 'Dwa'} 


07.3 Liczenie słów

>>> przykładowy_łańcuch_znaków = "Ciemno wszędzie, głucho wszędzie - co to będzie, co to będzie"  
>>> wystąpienia = {}
>>> for słowo in przykładowy_łańcuch_znaków.split():
...     wystąpienia[słowo] = wystąpienia.get(słowo, 0) + 1    #1
 
...
>>> for słowo in wystąpienia:
...     print("Słowo ", słowo, " występuje w tekście ", wystąpienia[słowo], " razy")
...
Słowo  Ciemno  występuje w tekście  1  razy
Słowo  wszędzie,  występuje w tekście  1  razy
Słowo  głucho  występuje w tekście  1  razy
Słowo  wszędzie  występuje w tekście  1  razy
Słowo  -  występuje w tekście  1  razy
Słowo  co  występuje w tekście  2  razy
Słowo  to  występuje w tekście  2  razy
Słowo  będzie,  występuje w tekście  2  razy


07.5 Macierze rzadkie

macierz = [[3, 0, -2, 11], [0, 9, 0, 0], [0, 7, 0, 0], [0, 0, 0, -5]]

macierz = {(0, 0):3, (0, 2): -2, (0, 3):11,
           (1, 1): 9, (2, 1): 7, (3, 3): -5 }

if (indeks_wiersza, indeks_kolumny) in macierz:
    element = macierz[(indeks_wiersza, indeks_kolumny)]
else:
    element = 0

07.6 7.6 Słowniki jako pamięć podręczna

def przelicz_mozolnie(m, n, t):
   # … wykonaj jakieś czasochłonne obliczenia…
   return wynik


pamięć_podręczna_funkcji = {}
def przelicz_mozolnie(m, n, t):
   if (m, n, t) in pamięć_podręczna_funkcji:
      return pamięć_podręczna_funkcji[(m, n, t)]
   else:
      # … wykonaj jakieś czasochłonne obliczenia…
      pamięć_podręczna_funkcji[(m, n, t)] = wynik
      return wynik

