11

Listy: podstawy – jedna nazwa na wiele wartości

Materiały tej lekcji są na razie tylko do czytania na stronie. Kod przepisz albo skopiuj do swojego edytora.

Czego się nauczysz

Do tej pory jedna zmienna trzymała jedną wartość. Przy dwudziestu ocenach musiałbyś utworzyć dwadzieścia zmiennych – i nie dałoby się przejść po nich pętlą. Lista przechowuje wiele wartości pod jedną nazwą.

Po tej lekcji:

Wiele wartości w jednej zmiennej

Wartości zapisujesz w nawiasach kwadratowych, rozdzielone przecinkami.

oceny = [3, 4, 5, 2, 4]
imiona = ["Ala", "Ola"]
puste = []
print(oceny)   # [3, 4, 5, 2, 4]

Indeksy – numeracja zaczyna się od zera

Do pojedynczego elementu sięgasz przez numer pozycji, podany w nawiasach kwadratowych po nazwie listy. Pierwszy element ma numer 0, nie 1.

oceny = [3, 4, 5, 2, 4]
#        0  1  2  3  4
print(oceny[0])     # 3
print(oceny[2])     # 5
print(oceny[-1])    # 4 – ostatni
print(len(oceny))   # 5

Numerowanie od zera obowiązuje też w C#. To nie dziwactwo Pythona, tylko standard w programowaniu.

IndexError – sięgnąłeś poza listę

Sięgnięcie po oceny[5] w liście pięcioelementowej kończy się błędem IndexError: list index out of range. To jedna z najczęstszych pomyłek przy pracy z listami – zwykle wynika z zapomnienia, że liczymy od zera.

Zmiana i dopisywanie elementów

Element można podmienić. Wystarczy przypisać nową wartość pod dany indeks. Stara wartość znika, długość listy się nie zmienia.

Element można dopisać na koniec. Służy do tego append: nazwa listy, kropka, słowo append i wartość w nawiasie. Lista rośnie o jeden.

oceny = [3, 4, 5]
oceny[1] = 6
print(oceny)        # [3, 6, 5]
oceny.append(2)
print(oceny)        # [3, 6, 5, 2]

append to pierwszy przykład metody, czyli funkcji przypisanej do konkretnego obiektu. Wywołujesz ją zawsze przez kropkę po nazwie.

Do pustej listy też można dopisywać. Zaczęcie od oceny = [] i dopisywanie w pętli to bardzo częsty schemat.

Listy są zmienne, teksty nie

W lekcji 5 widziałeś, że pojedynczego znaku w tekście nie da się podmienić. Z listą jest inaczej: oceny[0] = 5 działa. Zapamiętaj tę różnicę – wróci jeszcze nie raz.

Spróbuj sam

W kodzie z lekcji usuń # z linii print(oceny[100]) i uruchom program – zobaczysz prawdziwy IndexError.

Zadania z lekcji:

  1. Utwórz listę z pięcioma ocenami. Wypisz osobno: pierwszą, trzecią, ostatnią oraz liczbę wszystkich ocen.
  2. Utwórz listę z imionami trzech osób. Podmień drugie imię na inne i wypisz listę przed zmianą i po zmianie.
  3. Utwórz pustą listę. Dopisz do niej pięć liczb przy pomocy append, po każdym dopisaniu wypisując aktualną zawartość.
  4. Napisz program, który celowo sięgnie poza koniec listy. Zapisz w komentarzu treść komunikatu błędu.

Sprawdź się

Na następnej lekcji: operacje na całej liście – suma, największy, najmniejszy, sortowanie. Większość rzeczy Python policzy za ciebie.

Notatki

PDF
Zadania utrwalające Karta pracy do tej lekcji: zadania sprawdzające i domowe do samodzielnego zrobienia w swoim edytorze · 4 strony.
Zadania utrwalające – Listy: podstawy – jedna nazwa na wiele wartości
Strona 1 z 4 Strona 2 z 4 Strona 3 z 4 Strona 4 z 4

Prezentacja

Slajd 1 z 6
1 / 6

Kod

Otwórz kod, zmieniaj go i uruchamiaj na stronie – np. usuń # z linii oznaczonej jako błąd i zobacz, co się stanie. „Przywróć” wraca do wersji z lekcji.

PY
demo_11_listy-podstawy.py Kod z lekcji – otwórz, zmieniaj i uruchamiaj; wynik zobaczysz obok kodu.
demo_11_listy-podstawy.py
Wynik programu
Kliknij „Uruchom”, żeby zobaczyć tutaj wynik programu.