Lista jest sekwencją kilku zmiennych, zgrupowanych pod jedną nazwą. Zamiast pisać program z wieloma zmiennymi x0, x1, x2, ... można zdefiniować pojedynczą zmienną x i uzyskać dostęp do jej elementów x[0], x[1], x[2] itd. Co ważniejsze, można umieścić inne wyrażenia i zmienne wewnątrz nawiasów kwadratowych, takich jak x[i] i x[i+1]. Pozwala to radzić sobie z dowolnie dużymi zbiorami danych przy użyciu tylko jednego małego kodu.
Jednym ze sposobów utworzenia listy jest otoczenie nawiasami kwadratowymi kilku wartości oddzielonych przecinkami:
myList = ["the first value in the list", 1999, 4.5]Spowoduje to utworzenie listy o nazwie
myList o długości 3. Każdy element listy otrzymuje numer zwany indeksem: element początkowy ma indeks 0, następny element ma indeks 1 i tak dalej. Poszczególne zmienne zawierające listę mają nazwy
«listName»[«indexNumber»]
W tym przykładzie myList[0] to zmienna, której wartością jest łańcuch "the first value in the list" i print(myList[2]) spowoduje wydruk 4.5. Można również zmieniać wartości elementów na liście i wydrukować całe listy:
Jak widać numbers[0] traktowane jest jak zmienna: ma wartość i można ją zmienić.
Spróbuj przewidzieć końcowy stan wizualizowanego przykładu poniżej, a następnie porównaj go ze stanem uzyskanym po uruchomieniu kodu.
Dobrze! Spójrz na instrukcje przypisania (druga linia). Wartość rzeczy [3] po prawej stronie wynosi 12. Po lewej stronie rzeczy [0] to 2, więc rzeczy [stuff [0]] odnoszą się do zmiennych [2]. Wartość tej zmiennej jest aktualizowana (od 80) do 12.
stuff = [2, 25, 80, 12]
stuff[stuff[0]] = stuff[3]
print(stuff)
stuff[3] po prawej stronie wynosi 12. Po lewej stronie, stuff[0] wynosi 2, więc stuff[stuff[0]] odnosi się do zmiennej stuff[2]. Wartość tej zmiennej jest aktualizowana (z 80 do 12).![]() | To, co Python nazywa listą w większości innych języków programowania, jest nazywane tablicą. Python ma też coś innego & bardziej zaawansowane, co nazywa tablicami. |
Typowy błąd
Jeśli spróbujesz zapytać Pythona o indeks, który nie istnieje, otrzymasz błąd:
W powyższym przykładzie, ponieważ myList ma długość 4, a pierwszy indeks wynosi 0, maksymalny możliwy indeks to 3. Pytanie o indeks 4, 5 lub coś większego powoduje ten rodzaj błędu.
Zwykłe użyteczne operacje
Długość Listy: len(«list»)
Aby określić liczbę elementów na liście, wywołujemy na tej liście funkcję len(). Sprawdź, w jaki sposób range jest używany w poniższym przykładzie.
W trakcie pisania kodu zazwyczaj używamy polecenie len, które może pracować na listach o dowolnej długości, jak w powyższym przykładzie i w następnym ćwiczeniu.
Czy listy są takie same jak łańcuchy?
W tym momencie można zauważyć, że operacje na listach są takie same jak na łańcuchach: obie można przekazać do funkcji len() w celu uzyskania ich długości, obie korzystają z X[«index»] do wyodrębnienia poszczególnych elementów. Listy i łańcuchy są rzeczywiście powiązane: obie w Pythonie są to "typy sekwencji". Jedną z głównych różnic jest to, że nie można w łańcuchach zmieniać pojedynczych znaków.
Z tego powodu listy nazywane są typem zmiennym, a łańcuchy niezmiennym; Zobaczysz więcej informacji na ten temat w lekcji 17.
Łączenie i Tworzenie
Z lekcji o typie strwiemy, że możliwe jest użycie + do scalenia (łączenia) dwóch łańcuchów. Możesz to samo robić z listami:
Podobnie można użyć symbolu mnożenia * do rozszerzenia listy przez jej powtórzenie. Jest to użyteczne przy tworzeniu nowej listy wymaganej długości.
Aby rozwiązać następne ćwiczenie, użyj jednego z operatorów, który właśnie wprowadziliśmy i pętli for.
Koniec Linii: Ujemne Indeksy
Aby pobrać ostatni element listy, użyj:
«listName»[-1]
Ogólnie rzecz biorąc, L[-k] zwraca k’aty element od końca listy; Python obsługuje to wewnętrznie przez przełożenie na L[len(L)-k]. Ten zapis również działa na łańcuchach!
max i sum
Funkcja max, którą widzieliśmy wcześniej, może być również zastosowana do listy numerów: zwraca największą liczbę z listy. Podobnie sum(L) zwraca sumę elementów z listy L.
Pętle poprzez Listy
Bardzo często (podobnie jak w poprzednim ćwiczeniu) pętla przechodzi przez każdą wartość listy. Python umożliwia skrót do wykonania tego typu operacji, nazywanej zwykle pętlą "for all" lub "for each". W szczególności, gdy L jest listą, ten kod
for x in L: «blok ciała pętli»wykonuje następujące czynności: na początek
x przyjmuje wartość pierwszej pozycji z L, a ciało jest wykonywane; następnie x przyjmuje drugą wartość z L, a ciało jest wykonywane; jest to kontynuowane dla wszystkich pozycji z L.
Oto wizualizowany przykład wydrukowania elementów listy:
Pętla "for all" również działa na łańcuchach: spróbuj dla znaku w "hello".
Dobra robota! Możesz przejść do następnej lekcji lub spróbować wykonać kilka ćwiczeń bonusowych poniżej.
x, która spowoduje, że mystery(x) będzie działać bez końca?
def mystery(x):
a = [0, 4, 0, 3, 2]
while x > 0:
x = a[x]
return "Done"




