Przechodzimy do ważnego tematu związanego z nauką podstaw Pythona 😊! Wyjaśnimy sobie do czego służy lista w języku Python, jaką ma budowę i w jakich sytuacjach przydaje się najbardziej ❤️. Do tego poznasz niektóre metody jakimi dysponuje lista jako typ danych 👍. Zapraszam do środka, jak chcesz poznać szczegóły tego tematu 😊!
LISTA W JĘZYKU PYTHON NIERAZ CI SIĘ PRZYDA
Przede wszystkim wyjaśnimy sobie sam termin, abyś miał(a) pojęcie o czym jest rozmowa 🙂.
CZYM JEST LISTA W JĘZYKU PYTHON?
Listę w Pythonie nazywamy strukturę danych, która jest w stanie przechowywać wiele wartości w jednym miejscu. Charakteryzuje się zapamiętywaniem kolejności dodawanych do niej elementów, a każdy z nich można swobodnie modyfikować w dowolnym czasie ✅. Ponadto lista zezwala na wstawianie do niej identycznych elementów, czyli duplikatów ✔️.
Niektórym, lista może kojarzyć się z tablicą znaną z innych języków programowania i to też należy sobie wyjaśnić.
CZY LISTA W JĘZYKU PYTHON JEST TABLICĄ?
Poniekąd. W Pythonie nie ma tablic jako takich, które możesz znać z innych języków 🚫! Tablica posiada jedno ważne ograniczenie: nie można swobodnie zmieniać jej rozmiaru po jej utworzeniu ❌. Lista w Pythonie posiada taką zdolność 🙂. Dlatego można powiedzieć, że "zachowuje się" jak tablica, natomiast nie jest "prawdziwą" tablicą z punktu widzenia struktury danych, ponieważ może zmieniać swój rozmiar zależnie od liczby elementów w trakcie działania programu 💡.
Lista może być utożsamiana z tablicą z powodu identycznego zapisu odwoływania się do każdego z jej elementów poprzez notację indeksową (indeks wewnątrz nawiasów kwadratowych), natomiast sama w sobie nie jest tablicą ⚠️!
Warto wiedzieć, że lista jest w rzeczywistości sekwencją - odrębnym typem danych posiadającym zdolność do "chodzenia" po elementach jeden po drugim (zwłaszcza przy użyciu pętli "for") ℹ️.
JAK UTWORZYĆ LISTĘ W JĘZYKU PYTHON?
Listę w Pythonie można stworzyć na 2 sposoby 👇:
- stworzenie pustej listy,
- stworzenie listy zawierającej elementy.
Tak wygląda tworzenie pustej listy 👇:
my_list = []Oznaczeniem listy są nawiasy kwadratowe ℹ️. To jest ważne, aby rozróżniać strukturę danych po znakach, ponieważ oprócz list są też krotki, zbiory i słowniki, a one również posiadają swoje oznaczenia 🔥.
A to przykład utworzenia listy z elementami w środku 👇:
my_list = [1, 2, 3]To jest lista z 3 elementami w postaci liczb całkowitych (bez ułamka) 🔢.
Wyjątkowo w Pythonie, możemy wstawić do jednej listy wartości różnych typów danych 👇:
my_list = [1, 'Mój łańcuch znaków', 3.5]Aczkolwiek jeżeli zechcesz później operować na takiej liście używając pętli "for", możesz mieć duże problemy podczas obsługi każdego z elementów, ponieważ każdy typ danych jest obsługiwany na swój specyficzny sposób (na przykład nie każdy typ danych przyjmuje operator dodawania 😝) ❌. Najlepiej trzymać się zasady: jedna lista, jeden typ danych 👍.
Jesteśmy w stanie również dodawać elementy po utworzeniu listy - pokażę przykład podczas tłumaczenia metod ℹ️.
Lista w języku Python jest strukturą danych przeznaczoną do przechowywania wielu elementów w jednym miejscu. W przeciwieństwie do większości innych języków, Python zezwala na wprowadzanie elementów różnych typów danych do jednej listy!
Teraz kolejna rzecz: jak pobierać elementy z takiej listy ❤️!
JAK POBIERAĆ ELEMENTY Z LISTY W JĘZYKU PYTHON?
Do pobierania elementów z listy posługujemy się notacją indeksową, czyli odwołujemy się do listy i wskazujemy indeks elementu jaki nas interesuje 👍. Pamiętaj, że lista zapamiętuje kolejność elementów, a to oznacza, że masz pewność, że jak liczba 16 została umieszczona jako pierwsza, to będzie cały czas pierwsza w kolejności ❤️. Jest mała pułapka co do numeracji, natomiast o tym dosłownie za moment ⚠️.
Tak wygląda przykład uzyskania dostępu do pierwszego elementu 👇:
print(my_list[0])Najpierw podajesz zmienną jako listę, a zaraz po niej liczbę całkowitą (bez ułamka) w nawiasach kwadratowych ℹ️. Tylko zwróć uwagę, że indeks wynosi zero 😮! To "cofnięcie się o jeden" dotyczy wszystkich indeksów bez wyjątku ⚠️! Czyli jak będziemy chcieli się odwołać do piątego elementu, to 👇:
print(my_list[4])dobrze myślisz - czwarty indeks 😉.
Należy bardzo uważać podczas odwoływania się do elementów w taki sposób 💥! Jest ryzyko, że spróbujemy sięgnąć po element poza faktyczną ich liczbę, czyli "wyjdziemy" poza zakres listy. Jeżeli dojdzie do takiej sytuacji, Python zgłosi błąd typu "IndexError" (wyjście poza listę), a program zostanie przerwany (chyba, że przechwycimy wyjątek) ⛔.
W Pythonie możemy skorzystać też z ujemnych indeksów, aby przedostawać się do elementów w odwrotnej kolejności 😱! Gdy napiszemy w ten sposób 👇:
print(my_list[-1])otrzymamy na wyjściu wartość ostatniego elementu 🔥! I być może jak się domyślasz, chcąc pobrać trzeci element od końca, napiszemy tak 👇:
print(my_list[-3])Używając tego zapisu również musisz uważać na to, jak daleko się przemieszczasz ⚠️. Każda próba odwołania się do elementu poza "ramy" listy, skończy się wyżej opisaną awarią programu 💥!
Najlepiej unikać odwoływania się bezpośrednio do pojedynczych elementów listy, gdyż nie jest to dobra praktyka (jedynym wyjątkiem są pierwszy i ostatni element, gdyż stanowią takie "punkty zaczepienia") ❌. Jeżeli potrzebujemy wyszukać właściwy element, dużo lepiej podejść do tego w sposób odszukania go po podanym kryterium np. interesuje nas element w postaci liczby 25 🔍.
Zanim przejdziemy do metod, jeszcze jedna ważna rzecz, a mianowicie wyznaczanie długości listy na podstawie liczby elementów 🚀!
JAK WYZNACZYĆ LICZBĘ ELEMENTÓW W LIŚCIE W JĘZYKU PYTHON?
W Pythonie służy do tego funkcja "len" ✅. Nie jest przypisana do listy i może być użyta na każdej sekwencji 👍. Zakładając, że mamy taką listę 👇:
my_list = [1, 2, 3]to poniższe wywołanie 👇:
print(len(my_list))zwróci liczbę 3 🙂. Może Ci się przydać do pobierania ostatniego elementu z listy, gdyż wystarczy od wyniku odjąć jeden (aby dopasować wartość do notacji indeksowej ⚠️) i już uzyskujemy do niego dostęp 🔓.
Wszystko na ten temat. Teraz pokażę Ci kilka metod do obsługi listy 😄!
JAKIE METODY POSIADA LISTA W JĘZYKU PYTHON?
Lista w Pythonie składa się między innymi z następujących metod (pełne zestawienie znajduje się w oficjalnej dokumentacji Pythona ℹ️) 👇:
- append,
- insert,
- pop,
- index.
Opiszę krótko każdą z wymienionych 😊! Będę posługiwał się taką definicją listy 👇:
my_list = [1, 2, 3]APPEND
"append" odpowiada za dodawanie nowego elementu na koniec listy ℹ️. Stosuje się ją w przypadkach, gdy chcemy, aby jakiś element znalazł się w liście, natomiast nie da się go umieścić na etapie jej tworzenia, tylko po pewnym czasie 👍.
Gdy wywołamy sobie metodę w taki sposób 👇:
my_list.append(10)lista przyjmie taką formę 👇:
[1, 2, 3, 10]Podaję liczbę, natomiast metoda spokojnie zaakceptuje każdy typ danych 😉. Pamiętaj, że długość listy dostosowuje się na bieżąco zgodnie z liczbą elementów ✅. Dlatego określenie jej "tablicą" byłoby niepoprawne 💡.
Metoda "append" dodaje nowy element na koniec listy.
A co, gdybyśmy chcieli wstawić kolejny element, lecz niekoniecznie na końcu 🤔? Wtedy musisz skorzystać z metody "insert" 🙂!
INSERT
"insert" działa dokładnie jak "append", natomiast pozwala na określenie indeksu, czyli za jakim ma się znaleźć elementem w kolejności 😊. Oto przykład 👇:
my_list.insert(2, 10)W liście parametrów najpierw podajemy indeks, na którym ma się znaleźć element albo inaczej, liczbę elementów do pominięcia od początku listy ℹ️. Element jaki chcemy wstawić wpisujemy w miejsce drugiego parametru 2️⃣.
Taki będzie efekt 👇:
[1, 2, 10, 3]Nowo dodany element to liczba 10 i znajduje się na drugim indeksie (czy też po pierwszych 2 pominiętych elementach) 🙂.
W sytuacji, gdy podamy indeks wykraczający poza rozmiar listy 👇:
my_list.insert(100, 10)wtedy nie dojdzie do żadnej awarii programu, a element po prostu znajdzie się na samym jej końcu 🙂.
Metoda "insert" odpowiada za dodawanie nowego elementu w miejsce podanego indeksu.
To teraz operacja w drugą stronę - usuwanie elementów 💥.
POP
Metoda "pop" wykonuje 2 rzeczy naraz: usuwa element z listy i zwraca go ↩️. To się przydaje do sytuacji, w których chcesz usunąć element z listy, natomiast wykonać na nim jakieś czynności w późniejszych instrukcjach 👍.
Możemy jako parametr wstawić indeks, aby określić o jaki element nam chodzi, natomiast nie jest to obowiązkowe (wtedy zwróci ostatni) 🙂.
Tak wygląda przykład użycia 👇:
second_element = my_list.pop(1)
print(second_element)Wynik metody "pop" przypisujemy do zmiennej i w tym wypadku pobieramy drugi element w kolejności 2️⃣. To sprawi, że lista przyjmie taką postać 👇:
[1, 3]a w konsoli ukaże się wartość elementu, czyli liczba 2 👍.
Ujemne indeksy też są dozwolone i na przykład możemy pobrać ostatni element z listy idąc od końca 👇:
last_element = my_list.pop(-1)
print(last_element)W obu sposobach zapisu trzeba się pilnować, jeśli chodzi o indeks ⚠️! Podanie liczby wykraczającej poza liczbę elementów w liście spowoduje pojawienie się błędu "IndexError" i natychmiastowe zakończenie programu, jeśli wyjątek nie jest przechwytywany 🚫!
Metoda "pop" usuwa element o podanym indeksie (lub z końca, jeśli nie podano indeksu) i zwraca go na wyjściu.
INDEX
"index" jest już odmienną metodą przeznaczoną do przeszukiwania listy celem zwrócenia indeksu pod jakim znajduje się szukany element 🔍. Metoda zwraca pierwsze wystąpienie, co oznacza że nie weźmie pod uwagę powtarzających się elementów ⚠️!
To jest przykład użycia 👇:
index_of_searched_element = my_list.index(3)
print(index_of_searched_element)Do metody "index" wstawiamy parametr jako wartość elementu jaki nas interesuje np. liczba 3 🙂. Metoda przeszukuje listę w poszukiwaniu takiego elementu i jeżeli go znajdzie, to zwraca na wyjściu jego położenie w postaci indeksu ↩️. Jeżeli nie uda się go znaleźć, to nie zwróci -1 jak mogłeś(-aś) pomyśleć, tylko Python zgłosi błąd "ValueError", a program zostanie przerwany, gdy nie obsługuje tego wyjątku ⛔!
To może budzić niemałe zaskoczenie, także gdy korzystasz z tej metody, upewnij się że element jaki Cię interesuje, faktycznie tam jest 😉.
Metoda "index" przeszukuje listę w poszukiwaniu elementu jaki nas interesuje i zwraca na wyjściu indeks, na którym się znajduje, jako pierwsze wystąpienie. W przypadku nieznalezienia elementu, dochodzi do awarii programu!
Koniec 😊. Lista z całą pewnością Ci się przyda i to w przeważającej części programów jakie napiszesz w swoim życiu 😉!