***Słowniki***
Słownik jest modyfikowalną strukturą danych w układzie klucz:wartość. Słownik nie jest indeksowany, tzn. nie ma określonej kolejności par k:w.
Słownik może zawierać mieszane typy danych. Należy pamiętać, że klucze muszą być unikatowe.
**Deklaracja słownika**
slownik ={} - utworzenie pustego słownika
slownik = {klucz1:wartość1, klucz2:wartość2, kluczN:wartośćN} - utworzenie słownika n-elementowego)
np.
uczen={ 'imie':'Adam', 'nazwisko':'Kowalski', 'klasa':'3a', 'wiek':18}
** Dostęp do słownika**
print(uczen) #wyświetli cały słownik
print(uczen['imie']) #dostęp do słownika poprzez podanie klucza
print(uczen.get('imie')) #dostęp do słownika poprzez metodę get uodparnia program na pobranie klucza, który nie istnieje
np.
print(uczen['imie'] ) #wypisze Adam
print(uczen['imiee'] ) #nastąpi błąd programu - KeyError: 'imiee'
print(uczen.get('imie') ) #wypisze Adam
print(uczen.get('imiee')) #wypisz None - brak
print(uczen.get('imiee','Nie ma takiej wartości')) #wypisze - Nie ma takiej wartości
** Dodawanie nowej pary klucz:warość**
nowyklucz=input('podaj nowy klucz')
nowawartosc=input('podaj warosc do klucza')
uczen[nowyklucz]=nowawartosc
UWAGA! - istnieje ryzyko podmiany istniejącej pary k:w, dlatego warto się zabezpieczyć:
np.
nowyklucz=input('podaj nowy klucz')
if nowyklucz not in uczen: #sprawdza, czy ten klucz już nie istnieje
nowawartosc=input('podaj warosc do klucza')
uczen[nowyklucz]=nowawartosc
else:
print('Ten klucz już istnieje')
** Zmiana pary klucz:warość**
Zmiana pary, podobna jest do dodawania nowych elementów do słownika, w tym wypadku od razu zastosujemy if'a do sprawdzenia, czy dana para istnieje.
klucz=input('podaj klucz do wartości, którą chcesz podmienić')
if klucz in uczen: #sprawdza, czy ten klucz już istnieje
nowawartosc=input('podaj warosc do klucza')
uczen[klucz]=nowawartosc
else:
print('Ten klucz nie istnieje')
** Usunięcie par klucz:wartość***
Podobnie jak wyżej przykład realizuje obsługę błędu.
klucz=input('podaj klucz, który chcesz usunąć')
if klucz in uczen: #sprawdza, czy ten klucz już istnieje
del uczen[klucz]
print('usunąłem dane powiązane z kluczem: ', klucz)
else:
print('Ten klucz nie istnieje')
** Pozostałe metody słowników**
uczen2=uczen.copy() #kopiuje zawartość słownika uczen do słownika uczen2
uczen2.update(uczen) #aktualizacja słownika uczen2 zawartością słownika uczen - dopisuje nieistniejace i nadpisuje istniejące
print(uczen.pop('imie')) #wyświetla i usuwa klucz imie
uczen.keys() #tworzy krotkę z istniejących kluczy
uczen.values() #tworzy krotkę z istniejących wartości
uczen.items() #tworzy dwuskładnikowe krotki w układzie (k:w)
uczen.clear() #czyści cały słownik
del uczen #usuwa cały słownik