Łapka LogoŁapka Infa
🌐
Algorytmy

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!