12

Operacje na listach – suma, największy, sortowanie i wyszukiwanie

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

Czego się nauczysz

Suma, średnia, największy element, sortowanie – tego nie trzeba liczyć ręcznie w pętli. Python ma na to gotowe funkcje. Na tej lekcji poznasz je oraz jedną pułapkę, na którą wpada prawie każdy: różnicę między sort a sorted.

Po tej lekcji:

Pięć funkcji, które liczą za ciebie

oceny = [3, 4, 5, 2, 4]
print(sum(oceny))      # 18
print(max(oceny))      # 5
print(min(oceny))      # 2
print(sorted(oceny))   # [2, 3, 4, 4, 5]

Średnia to złożenie dwóch funkcji

Nie ma osobnej funkcji na średnią i nie jest potrzebna: to sum(lista) podzielone przez len(lista).

srednia = sum(oceny) / len(oceny)
print(f"{srednia:.2f}")   # 3.60
Uważaj na pustą listę: len wynosi wtedy zero, a dzielenie przez zero kończy się błędem ZeroDivisionError.

sort kontra sorted – łatwo pomylić

Klasyczna wpadka:

posortowane = oceny.sort()
print(posortowane)   # None!

Po tej linii w zmiennej posortowane siedzi None, a nie lista – a program wywala się dopiero kilka linii dalej, w zupełnie innym miejscu.

Reguła kciuka: metoda z kropką po nazwie listy zwykle zmienia oryginał i nic nie zwraca. Funkcja z listą w nawiasie zwykle tworzy nową listę i zwraca wynik.

Sortowanie malejące: sorted(oceny, reverse=True).

Wyszukiwanie

oceny = [3, 4, 5, 4]
print(5 in oceny)       # True
print(oceny.count(4))   # 2
print(oceny.index(4))   # 1

Usuwanie

To nie to samo: remove(4) usuwa czwórkę, gdziekolwiek jest, a pop(4) usuwa piąty element listy.

remove dla wartości, której nie ma na liście, kończy się błędem. Warto najpierw sprawdzić operatorem in.

Spróbuj sam

W kodzie z lekcji znajdź linię wynik = kopia.sort() i sprawdź w wyniku programu, co trafiło do zmiennej wynik. Potem dopisz na końcu własną listę ocen i policz jej średnią.

Zadania z lekcji:

  1. Dla listy [3, 5, 2, 4, 6, 3, 5] wypisz: liczbę ocen, sumę, średnią z dwoma miejscami po przecinku, najwyższą, najniższą oraz listę posortowaną rosnąco.
  2. Sprawdź na własnym programie, co zwraca oceny.sort(), a co sorted(oceny). Wynik obu opisz w komentarzu.
  3. Sprawdź operatorem in, czy na liście jest ocena 6. Wypisz odpowiedni komunikat w obu przypadkach.
  4. Policz, ile razy na liście występuje ocena 5, i usuń pierwsze jej wystąpienie. Wypisz listę przed i po.

Sprawdź się

Na następnej lekcji: przechodzenie po liście pętlą – na dwa sposoby. Jeden krótszy, drugi dłuższy, ale ważniejszy, bo jego odpowiednika użyjesz później w C#.

Notatki

PDF
Zadania utrwalające Karta pracy do tej lekcji: zadania sprawdzające i domowe do samodzielnego zrobienia w swoim edytorze · 5 stron.
Zadania utrwalające – Operacje na listach – suma, największy, sortowanie i wyszukiwanie
Strona 1 z 5 Strona 2 z 5 Strona 3 z 5 Strona 4 z 5 Strona 5 z 5

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_12_operacje-na-listach.py Kod z lekcji – otwórz, zmieniaj i uruchamiaj; wynik zobaczysz obok kodu.
demo_12_operacje-na-listach.py
Wynik programu
Kliknij „Uruchom”, żeby zobaczyć tutaj wynik programu.