Słowniki
Kolejną wygodną strukturą danych są słowniki. Pozwalają nam uporządkować dane według kategorii, w formie "klucz:wartość". Zobaczmy to na przykładzie, którym będzie szczep drożdży, który otrzymaliśmy na płytkach z pożywką agarową (specjalne pojemniki, w których hoduje się mikroorganizmy). Na każdej z nich jest inna ilość kolonii (skupisk). Wpiszmy je do słownika w postaci "płytka1":101...
dictionary = {'plytka1':101, 'plytka2':201, 'plytka3': 302, 'plytka4':102}
Wygląda to pięknie, wszystko jest uporządkowane, dużo danych na jednej zmiennej... ale jak wyjąć stąd jakieś dane? Jeśli spróbujemy zrobić to tak samo jak z listami, dostaniemy błąd. Wyjątkiem jest, gdy kluczem jest liczba całkowita.
Do wartości w słowniku dostajemy się używając klucza, więc aby dowiedzieć się co mamy na konketnej płytce należy wpisać:
print dictionary['plytka1']
Jeśli chcemy zobaczyć cały słownik, robimy to w taki sam sposób jak w przypadku listy lub zmiennej.
print dictionary
Nasz słownik może zawierać bardzo dużo kluczy, gdy nie jesteśmy pewni, czy jest tam akurat ten którego szukamy oraz nie możemy znaleźć go przy wywołaniu "dictionary['plytka1']", może się okazać, że po prostu zrobiliśmy literówkę we wpisywaniu nazwy klucza. Dlatego, aby przejrzyście zobaczyć nazwy wszystkich kluczy możemy użyć metody keys().
Jeśli chcemy wiedzieć, czy jakaś płytka zawierała 20 koloni, to wtedy używamy metody values() .
Zobaczmy jak to wygląda w praktyce:
print dictionary.keys() print dictionary.values()
UWAGA: Pamiętaj, że kolejność wstawiania kluczy do słownika nie musi odpowiadać kolejności wartości wyświetlonych dzięki tym metodom.
Teraz zastanówmy się, co jeśli zdecydujemy się założyć nową hodowlę na płytce... Trzeba wtedy dodać ją do naszego słownika. Niestety nie zadziała tu funkcja append(), ale możemy to zrobić w inny (może nawet prostszy) sposób:
dictionary['plytka5']=0
Ostatni przypadek jaki może sie nam zdarzyć z naszymi grzybami, to, to że mimo naszych najlepszych starań nie wyrosną. Podobnie jak w przypadku list użyjemy del na nieudanym doświadczeniu.
Tak samo możemy postąpić jeśli znudzi nam się hodowanie drożdży na płytkach z pożywką.
print dictionary del dictionary['plytka5'] print dictionary del dictionary print dictionary
Zawarte tu informację, na pewno ułatwią Ci dalszą pracę z pisaniem kodu w pythonie, szczególnie w sytuacjach, kiedy potrzebne Ci będzie katalogowanie jakichś informacji. Wykorzystaj je we własnych programach.
Pod koniec tego samouczka pokażemy też specjaną, ulepszoną wersję słowników.