Python (3/4): Listy i Przekroje
Pociągi z wagonami. Wrzucanie tysięcy wyników do jednej listy i cięcie jej magią Slicingu.
Tablice (Listy) w Pythonie (3/4)
Jeśli wczytasz 1000 wyrazów z pliku tekstowego na maturze, nie wrzucisz każdego do nowej zmiennej (a = "...", b = "..."). Potrzebujesz "szufladek", czyli Tablic. W Pythonie, to cudowne narzędzie nazywa się Listą.
1. Definiowanie i dostęp
Listy tworzymy nawiasami kwadratowymi [].
zwierzeta = ["Kot", "Pies", "Tygrys", "Krowa"]
# Indeksowanie znów zaczyna się od zera!
print(zwierzeta[0]) # Wypisze "Kot"
print(zwierzeta[2]) # Wypisze "Tygrys"Co najlepsze w Pythonie, możemy w jednym z rzadkich i genialnych rozwiązań pytać o elementy od tyłu!
print(zwierzeta[-1]) # Wypisze "Krowa" (ostatni wagonik!)
print(zwierzeta[-2]) # Wypisze "Tygrys"2. Podstawowe operatory List
Na maturze zazwyczaj ładujemy liczby po kolei. Jak to robić?
.append(element): Dodaje element na ZAWSZE NA KONIEC listy.len(lista): (length) Podaje nam ile dokładnie wagoników (elementów) ma w tej chwili lista. Egzaminy to kochają..sort(): Sortuje automatycznie listę od najmniejszej do największej..pop(indeks): Wyrzuca wagonik o zadanym numerze.
liczby = [50, 10, 30]
liczby.append(99) # Zostało [50, 10, 30, 99]
liczby.sort() # Zostało [10, 30, 50, 99]
dlugosc = len(liczby)
print("Moja lista ma elementów:", dlugosc)3. Przechodzenie Pętlą For przez Listę
Masz listę 500 liczb i arkusz każe znaleźć tylko te parzyste (modulo 2). Robisz to tak, samo jak przy napisie w poprzedniej lekcji!
oceny = [2, 5, 4, 3, 5, 1, 6]
for ocena in oceny:
# Operator % (Modulo) podaje resztę z dzielenia.
# Jeśli coś dzieli się przez 2 i reszta wynosi 0, znaczy to, że liczba jest parzysta!
if ocena % 2 == 0:
print("Znalazłem parzystą:", ocena)4. Wycinanie (Slicing) - Prawdziwa Magia Pythona 🪤
Tego nie ma C++. Python pozwala dosłownie wyciąć nożyczkami część listy (lub część napisu!) bez stosowania wielkich, ciężkich pętli. Wzór: zmienna[start : stop : krok]
haslo = "MATURA_INFORMATYKA_"
print(haslo[0 : 6]) # Od indeksu 0 do 6 (nie wchodzi!). Wypisze: MATURA
print(haslo[7 : ]) # Od 7 do samego końca! Wypisze: INFORMATYKA_
print(haslo[ : 6]) # Od początku (domyślnie 0) do 6. Wypisze: MATURA
# A teraz gwóźdź programu - odwiedzanie napisu od tyłu (częste na hasłach)!
print(haslo[::-1]) # Krok na -1 oznacza czytanie wstecz. Zwróci odwrócony napis!Użycie Slicingu na maturze potrafi zaoszczędzić Ci 10 minut błądzenia w pętli!
