Back to Top
 
 

Listy

Czy można do zmiennej przypisać wiele wartości?

Wyobraź sobie, że piszesz oprogramowanie dla sklepu internetowego i docierasz do momentu, gdy musisz zaprogramować koszyk. Czy, mając dotychczasową wiedzę o Pythonie, jesteś w stanie utworzyć zmienną, w której będziesz przechowywać wiele produktów?

Nie, bo znane Ci typy zmiennych pozwalają na „włożenie do pudełka” pojedynczego obiektu. Języki programowania – Python również – radzą sobie z takim problemem udostępniając programistom tzw. listy. Lista to specjalny typ zmiennej, który pozwala na „wrzucenie do pudełka” więcej niż jednej rzeczy.

 

Oto przykład:

# aktualna zawartość mojej kieszeni (liczby to monety)
my_pocket = ["telefon", 0.05, 0.05, 0.02, "stary paragon"]
print(my_pocket)

Zmienna my_pocket zawiera kolekcję różnych elementów. Typem danych tej zmiennej jest lista. Zwróć uwagę na kwadratowy nawias: otwiera i zamyka listę. Wszystko, co jest wewnątrz nawiasów, to kolejne elementy tej listy, oddzielone przecinkami. Zauważ, że te elementy nie są jednego typu – w naszym przykładzie są to napisy i liczby, ale tak naprawdę, każdy element listy może być dowolnego typu: liczba, napis, wartość logiczna (True/False), None, a nawet inna lista!

Lista jest uporządkowana. Oznacza to, że na pierwszym miejscu naszej przykładowej listy znajduje się napis “telefon”, na ostatnim – “stary paragon”. Każdy element ma swoją pozycję na liście, którą programiści nazywają indeksem.

Teraz skup się, bo mam ważną uwagę: listy numerujemy nie od jedynki, a od zera! To oznacza, że indeksem napisu “telefon” jest 0, liczby 0.05 – 1 i tak dalej aż do “starego paragonu”, który ma indeks 4!

Najłatwiej to zapamiętać przyrównując listę do kamienicy.

 

Oto przykład:

#221b Baker Street!
baker_street_221b = ["Mrs Hudson", "Holmes", "Watson"]
print(baker_street_221b)

Oto przykład listy:

Na parterze (czyli piętrze o numerze 0) mieszka pani Hudson, na piętrze 1 – Sherlock, na 2 – dr Watson.

Czy mogę dostać się do pojedynczego elementu?

Jak najbardziej! Trzeba tylko znać numer elementu listy. Jeśli w przykładzie z Sherlockiem chcemy pobrać dane doktora Watsona, to musimy znać numer piętra, na którym mieszka. Doktor mieszka na 2 piętrze, jego indeks na liście wynosi zatem 2.

# wyświetl dane doktora Watsona
print(baker_street_221b[2])

Oto przykład dostania się do elementu:

Zwróć uwagę, że dane doktora wyświetliłem, podając nazwę zmiennej z listą, a potem od razu, w nawiasach kwadratowych, podałem indeks elementu, który chciałem pobrać. Analogicznie – dane pani Hudson z parteru pobiorę tak:

# Mrs Hudson
mrs_hudson = baker_street_221b[0]
print(mrs_hudson)

Oto przykład dostępu do elementu:

Czy mogę dodać nowy element do listy?

Tak. Wystarczy użyć metody append().

 

Oto przykład:

baker_street_221b.append(“Lestrade”)
print(baker_street_221b)

Oto przykład dodawania nowego elementu:

Do domu pani Hudson wprowadził się inspektor Lestrade. Zajął kolejne piętro i… tu nasza analogia się trochę sypie, bo w Pythonie wygląda to tak, że każdy nowy element wydłuża listę. Czyli tak, jakby każdy wyprowadzający się lokator burzył swoje piętro, a każdy nowy dobudowywał kolejne. ;)

Ile elementów znajduje się na liście?

Żeby to sprawdzić wystarczy użyć funkcji len(), gdzie jako parametr podajemy nazwę listy:

Oto przykład sprawdzenia liczby elementów listy:

print(len(baker_street_221b))

Czy można pobrać element, który nie istnieje?

Oczywiście, że nie! Jeśli zapytamy Pythona o mieszkańca dziesiątego piętra:

 

Oto przykład:

# 10 piętro!
print(baker_street_221b[10])


Otrzymamy:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
 

Zadania

 

Zadanie 1

Zadeklaruj listę the_beatles. Umieść w niej następujących członków: “John Lennon”, “Paul McCartney”, “George Harrison”, “Stuart Sutcliffe”. Wyświetl na ekranie zawartość listy. Następnie dodaj nowego członka zespołu. Jego nazwisko to Pete Best. Ponownie wyświetl na ekranie zawartość listy.

Przejdź do pierwszego zadania:

Zadanie 2

Jeszcze przed wydaniem pierwszej płyty z zespołu odszedł Stuart Sutcliffe (wkrótce później zmarł), Usuń odpowiedni wpis z listy the_beatles. Wyświetl na ekranie nowy skład zespołu.

Przejdź do drugiego zadania:

Zadanie 3

Wkrótce potem trójka muzyków, za namową managera, zdecydowała się zwolnić perkusistę Pete’a Besta, a na jego miejsce zatrudnić Ringo Starra. Zamień odpowiedni wpis na liście the_beatles. Wyświetl na ekranie nowy skład zespołu.

Przejdź do trzeciego zadania:

Zadanie 4

Na koniec wyświetl na ekranie skład zespołu, ale nie wyświetlaj całej listy, a pojedynczo wszystkich członków, każdego w nowej linijce.

Przejdź do czwartego zadania:

 

Odpowiedzi do zadań

Zadanie 1

Zadanie 2

Zadanie 3

Zadanie 4