Słowniki to tak zwane listy asocjacyjne, które cechują się tym, że nie są indeksowane tak jak listy tylko i wyłącznie kolejnymi liczbami całkowitymi, ale mogą być indeksowane liczbami zmiennoprzecinkowymi lub tekstem.
Tworzenie pustego słownika
Istnieje kilka sposobów na utworzenie pustego słownika, oto pierwszy z nich:
slownik = dict()
i drugi:
slownik = {}
Inicjalizacja słownika z elementami
Oto przykład utworzenia słownika z przypisaniem mu elementów:
Słowniki są jak najbardziej iterowalne, a więc można zrobić coś takiego:
slownik = {"Ania":1200, "Ola":1300, "Arek":3000}
for i in slownik:
print(i)
Wynik działania:
Arek
Ola
Ania
Jak widać, w trakcie iterowania dobraliśmy się do indeksów słownika, natomiast nie uzyskaliśmy informacji o zawartości, która się tam znajduje. Tę zawartość można uzyskać w dwojaki sposób:
slownik = {"Ania":1200, "Ola":1300, "Arek":3000}
for i in slownik:
print("{i}:{value}".format(i=i,value = slownik[i]))
Wynik działania:
Arek:3000
Ola:1300
Ania:1200
Choć powyższy kod działa poprawnie, to każdy szanujący się pythonauta powie: tak się nie robi! Więc zróbmy to tak, jak się to robi, czyli:
slownik = {"Ania":1200, "Ola":1300, "Arek":3000}
for key, value in slownik.items():
print("{key}:{value}".format(key = key, value = value))
Wynik będzie taki sam co poprzednio.
Uaktualnianie danych w słowniku za pomocą metody wewnętrznej update
Metoda update wstawia dodatkowe wpisy do słownika a jeżeli dany klucz wpisu istnieje, to uaktualnia zawartość tego wpisu.
Sprawdzanie, czy podany klucz istnieje w słowniku za pomocą in.
slownik = {"Ania":1200, "Ola":1300, "Arek":3000}
if "Ania" in slownik:
print("Ania jest w słowniku!")
else:
print("Ani nie ma w słowniku!")
Wynik działania:
Ania jest w słowniku!
Sprawdzanie, czy podany klucz i wartość istnieje w słowniku za pomocą in.
slownik = {"Ania":1200, "Ola":1300, "Arek":3000}
if ("Ania", 1200) in slownik.items():
print("Tak Ania zarabia 1200 $!")
else:
print("Ani nie ma w słowniku, albo nie zarabia 1200 $!")
Wynik działania:
Tak Ania zarabia 1200 $!
Sprawdzanie, czy dana wartość istnieje w słowniku za pomocą in.
slownik = {"Ania":1200, "Ola":1300, "Arek":3000}
if 1200 in slownik.values():
print("Tak, ktoś tu zarabia 1200 $!")
else:
print("Nikt tu nie zarabia 1200 $!")
Wynik działania:
Tak, ktoś tu zarabia 1200 $!
Usuwanie elementu słownika.
Za pomocą metody wewnętrznej pop można usunąć wpis w słowniku o podanym kluczu z jednoczesnym zwróceniem samej wartości kryjącej się pod tymże kluczem:
slownik = {"Ania":1200, "Ola":1300, "Arek":3000}
if "Ania" in slownik:
print(slownik.pop("Ania"))
print(slownik)
else:
print("Nie ma takiego klucza w słowniku")
Wynik działania:
1200
{'Arek': 3000, 'Ola': 1300}
Za pomocą metody wewnętrznej popitem można usunąć ostatni wpis słownika z jednoczesnym zwróceniem klucza i wartości w postaci krotki:
slownik = {"Ania":1200, "Ola":1300, "Arek":3000}
if "Ania" in slownik:
print(slownik.popitem())
print(slownik)
else:
print("Nie ma takiego klucza w słowniku")
Wynik działania:
('Arek', 3000)
{'Ania': 1200, 'Ola': 1300}
Czyszczenie słownika za pomocą metody wewnętrznej clear: