Lekcja 5 – Listy i krotki

Kurs: Darmowy kurs Python dla początkujących
Lekcja 5: Listy i krotki

⇓ spis treści ⇓


Tworzenie list i krotek

Listy i krotki to dwa podstawowe typy danych w Pythonie, które pozwalają przechowywać wiele wartości w jednej zmiennej. Dzięki nim możemy łatwo organizować i manipulować większymi zbiorami danych, takimi jak liczby, teksty czy inne obiekty.

1. Listy

Listy w Pythonie to kolekcje, które mogą przechowywać wiele elementów w określonej kolejności. Elementy listy są oddzielane przecinkami i umieszczane w nawiasach kwadratowych []. Listy są dynamiczne, co oznacza, że można je modyfikować, dodając, usuwając lub zmieniając ich elementy.

# Tworzenie listy
lista = [1, 2, 3, 4, 5]
print(lista)  # Wynik: [1, 2, 3, 4, 5]

# Lista z różnymi typami danych
lista_mieszana = [1, "Python", 3.14, True]
print(lista_mieszana)  # Wynik: [1, 'Python', 3.14, True]

Listy mogą zawierać dowolną liczbę elementów i mogą być puste:

# Pusta lista
pusta_lista = []
print(pusta_lista)  # Wynik: []
2. Krotki

Krotki w Pythonie są podobne do list, ale w przeciwieństwie do nich są niemodyfikowalne (ang. immutable). Oznacza to, że po utworzeniu krotki nie można zmieniać jej zawartości. Elementy krotki są oddzielane przecinkami i umieszczane w nawiasach okrągłych ().

# Tworzenie krotki
krotka = (1, 2, 3, 4, 5)
print(krotka)  # Wynik: (1, 2, 3, 4, 5)

# Krotka z różnymi typami danych
krotka_mieszana = (1, "Python", 3.14, True)
print(krotka_mieszana)  # Wynik: (1, 'Python', 3.14, True)

Krotki również mogą być puste:

# Pusta krotka
pusta_krotka = ()
print(pusta_krotka)  # Wynik: ()

Jeśli krotka zawiera tylko jeden element, musisz dodać przecinek po tym elemencie, aby Python poprawnie rozpoznał ją jako krotkę:

# Krotka z jednym elementem
jednoelementowa_krotka = (42,)
print(jednoelementowa_krotka)  # Wynik: (42,)
3. Różnice między listami a krotkami

Oto główne różnice między listami a krotkami:

Cechy Listy Krotki
Struktura Nawiasy kwadratowe [] Nawiasy okrągłe ()
Modyfikowalność Modyfikowalne (można zmieniać ich zawartość) Niemodyfikowalne (zawartość jest stała po utworzeniu)
Szybkość Nieco wolniejsze od krotek Szybsze dzięki niemodyfikowalności
4. Użycie list i krotek w praktyce

Listy są najczęściej używane, gdy potrzebujemy kolekcji, która może być zmieniana, np. w przypadku przechowywania dynamicznych danych. Krotki są idealne do przechowywania danych, które powinny pozostać niezmienne, np. współrzędne punktu czy konfiguracje.

# Przykład użycia listy
zakupy = ["chleb", "mleko", "ser"]
zakupy.append("jajka")  # Dodanie nowego elementu
print(zakupy)  # Wynik: ['chleb', 'mleko', 'ser', 'jajka']

# Przykład użycia krotki
wspolrzedne = (50.0647, 19.9450)  # Współrzędne Krakowa
print(wspolrzedne)

Indeksowanie, dodawanie, usuwanie elementów

Listy i krotki w Pythonie umożliwiają przechowywanie wielu elementów w jednej kolekcji. Aby skutecznie pracować z tymi strukturami, musimy znać sposoby uzyskiwania dostępu do ich elementów (indeksowanie), a także metody dodawania i usuwania elementów (w przypadku list, ponieważ krotki są niemodyfikowalne).

1. Indeksowanie

W Pythonie elementy list i krotek są indeksowane, co oznacza, że każdy element ma przypisany numer (indeks). Indeksy zaczynają się od 0 dla pierwszego elementu, a dla ostatniego elementu można używać indeksów ujemnych.

Przykłady indeksowania:

# Lista do indeksowania
lista = ["jabłko", "banan", "wiśnia"]

# Uzyskiwanie dostępu do elementów
print(lista[0])  # Pierwszy element: jabłko
print(lista[1])  # Drugi element: banan
print(lista[-1]) # Ostatni element: wiśnia

# Indeksowanie krotki
krotka = (10, 20, 30)
print(krotka[2])  # Trzeci element: 30

Jeśli spróbujesz uzyskać dostęp do indeksu, który nie istnieje, Python zwróci błąd:

# Błąd indeksowania
print(lista[5])  # IndexError: list index out of range
2. Dodawanie elementów do listy

W odróżnieniu od krotek, listy można modyfikować, co oznacza, że możemy dodawać do nich nowe elementy. Python oferuje kilka metod do dodawania elementów:

  • append() – Dodaje element na końcu listy.
  • insert() – Wstawia element w określonym miejscu listy.
  • extend() – Dodaje wiele elementów do listy.

Przykłady:

# Dodawanie elementów
lista = ["jabłko", "banan"]

# Dodawanie elementu na końcu
lista.append("wiśnia")
print(lista)  # Wynik: ['jabłko', 'banan', 'wiśnia']

# Wstawianie elementu w określonej pozycji
lista.insert(1, "gruszka")
print(lista)  # Wynik: ['jabłko', 'gruszka', 'banan', 'wiśnia']

# Dodawanie wielu elementów
lista.extend(["kiwi", "mango"])
print(lista)  # Wynik: ['jabłko', 'gruszka', 'banan', 'wiśnia', 'kiwi', 'mango']
3. Usuwanie elementów z listy

Python oferuje kilka metod usuwania elementów z listy:

  • remove() – Usuwa pierwsze wystąpienie określonego elementu.
  • pop() – Usuwa element z określonego indeksu (domyślnie ostatni element) i zwraca jego wartość.
  • del – Usuwa element z określonego indeksu lub całą listę.
  • clear() – Usuwa wszystkie elementy z listy.

Przykłady:

# Usuwanie elementów
lista = ["jabłko", "banan", "wiśnia", "kiwi"]

# Usuwanie elementu po nazwie
lista.remove("banan")
print(lista)  # Wynik: ['jabłko', 'wiśnia', 'kiwi']

# Usuwanie elementu z określonego indeksu
element = lista.pop(1)  # Usuwa element o indeksie 1
print(element)  # Wynik: wiśnia
print(lista)    # Wynik: ['jabłko', 'kiwi']

# Usuwanie elementu za pomocą del
del lista[0]  # Usuwa pierwszy element
print(lista)  # Wynik: ['kiwi']

# Usuwanie wszystkich elementów
lista.clear()
print(lista)  # Wynik: []
4. Krotki – brak modyfikacji

W przeciwieństwie do list, krotki są niemodyfikowalne. Oznacza to, że nie można dodawać ani usuwać elementów z krotki po jej utworzeniu. Każda próba modyfikacji krotki spowoduje błąd:

# Próba modyfikacji krotki
krotka = (1, 2, 3)
krotka[0] = 10  # TypeError: 'tuple' object does not support item assignment
5. Praktyczne przykłady

Oto kilka praktycznych przykładów manipulacji elementami list:

# Lista zakupów
zakupy = ["chleb", "mleko", "ser"]

# Dodawanie produktu
zakupy.append("jajka")
print(zakupy)  # Wynik: ['chleb', 'mleko', 'ser', 'jajka']

# Usuwanie produktu
zakupy.remove("ser")
print(zakupy)  # Wynik: ['chleb', 'mleko', 'jajka']

Operacje na listach

Listy w Pythonie to niezwykle wszechstronne struktury danych, które oferują wiele możliwości manipulowania ich zawartością. W tej części omówimy najważniejsze operacje, które można wykonywać na listach, takie jak sortowanie, wyszukiwanie, kopiowanie i odwracanie elementów.

1. Sprawdzanie obecności elementu

Możesz sprawdzić, czy dany element znajduje się na liście, używając operatora in:

# Sprawdzanie obecności elementu
lista = ["jabłko", "banan", "wiśnia"]

print("banan" in lista)  # Wynik: True
print("mango" in lista)  # Wynik: False
2. Iterowanie po liście

Listy można łatwo iterować za pomocą pętli for. Dzięki temu możemy uzyskać dostęp do każdego elementu listy:

# Iterowanie po liście
lista = ["jabłko", "banan", "wiśnia"]
for owoc in lista:
    print(owoc)

Wynik działania tego kodu to:

jabłko
banan
wiśnia
3. Sortowanie listy

Python oferuje wbudowaną metodę sort(), która sortuje listę w miejscu (zmienia jej kolejność). Możesz również użyć funkcji sorted(), która zwraca nową posortowaną listę, pozostawiając oryginalną listę bez zmian:

# Sortowanie listy
lista = [3, 1, 4, 1, 5, 9]
lista.sort()  # Sortowanie rosnąco
print(lista)  # Wynik: [1, 1, 3, 4, 5, 9]

# Sortowanie malejąco
lista.sort(reverse=True)
print(lista)  # Wynik: [9, 5, 4, 3, 1, 1]

# Użycie funkcji sorted
oryginalna = [3, 1, 4, 1, 5, 9]
posortowana = sorted(oryginalna)
print(oryginalna)   # Oryginalna lista pozostaje bez zmian
print(posortowana)  # Wynik: [1, 1, 3, 4, 5, 9]
4. Odwracanie kolejności elementów

Możesz odwrócić kolejność elementów w liście za pomocą metody reverse() lub funkcji reversed():

# Odwracanie kolejności elementów
lista = [1, 2, 3, 4, 5]
lista.reverse()
print(lista)  # Wynik: [5, 4, 3, 2, 1]

# Użycie funkcji reversed
lista = [1, 2, 3, 4, 5]
odwrocona = list(reversed(lista))
print(odwrocona)  # Wynik: [5, 4, 3, 2, 1]
5. Kopiowanie listy

Aby skopiować listę, możesz użyć metody copy() lub operatora wycinka [:]. Kopiowanie jest ważne, gdy chcemy utworzyć nową listę, która nie będzie zależna od oryginalnej:

# Kopiowanie listy
lista = [1, 2, 3, 4, 5]

# Kopiowanie za pomocą copy()
kopia1 = lista.copy()
print(kopia1)  # Wynik: [1, 2, 3, 4, 5]

# Kopiowanie za pomocą wycinka
kopia2 = lista[:]
print(kopia2)  # Wynik: [1, 2, 3, 4, 5]
6. Liczenie wystąpień elementu

Python umożliwia liczenie liczby wystąpień danego elementu na liście za pomocą metody count():

# Liczenie wystąpień elementu
lista = [1, 2, 3, 1, 1, 4, 5]
liczba_jedynek = lista.count(1)
print(liczba_jedynek)  # Wynik: 3
7. Łączenie list

Możesz łączyć dwie listy za pomocą operatora + lub metody extend():

# Łączenie list za pomocą +
lista1 = [1, 2, 3]
lista2 = [4, 5, 6]
polaczona = lista1 + lista2
print(polaczona)  # Wynik: [1, 2, 3, 4, 5, 6]

# Łączenie list za pomocą extend()
lista1.extend(lista2)
print(lista1)  # Wynik: [1, 2, 3, 4, 5, 6]
8. Usuwanie duplikatów

Aby usunąć duplikaty z listy, możesz użyć zbiorów (set), które automatycznie eliminują powtórzenia:

# Usuwanie duplikatów za pomocą set
lista = [1, 2, 2, 3, 4, 4, 5]
bez_duplikatow = list(set(lista))
print(bez_duplikatow)  # Wynik: [1, 2, 3, 4, 5]
9. Wycinki (slicing)

W Pythonie możesz wycinać fragmenty listy za pomocą operatora wycinka (slice):

# Wycinki
lista = [0, 1, 2, 3, 4, 5]

print(lista[1:4])  # Elementy od indeksu 1 do 3: [1, 2, 3]
print(lista[:3])   # Pierwsze trzy elementy: [0, 1, 2]
print(lista[3:])   # Od indeksu 3 do końca: [3, 4, 5]
print(lista[::2])  # Co drugi element: [0, 2, 4]
Podsumowanie

Listy w Pythonie są niezwykle elastyczne i oferują szeroki zakres operacji, które ułatwiają manipulowanie danymi. W kolejnych lekcjach zobaczysz, jak wykorzystać listy w bardziej zaawansowanych projektach.

Następna lekcja ==> Słowniki i zbiory



Spis Treści - darmowy kurs Python dla początkujących


Lekcja 1: Wprowadzenie do programowania
- Co to jest programowanie?
- Dlaczego warto uczyć się Pythona?
- Instalacja Python i wprowadzenie do edytorów (IDLE, VS Code).
Lekcja 2: Pierwszy program w Pythonie
- Składnia Pythona.
- Wyświetlanie tekstu (funkcja print).
- Komentarze i ich znaczenie.
Lekcja 3: Podstawowe typy danych
- Liczby: int, float.
- Ciągi znaków (stringi).
- Typ logiczny (boolean).
- Funkcja type.
Lekcja 4: Zmienne i operatory
- Deklaracja i przypisywanie zmiennych.
- Operatory arytmetyczne, porównania, logiczne.
Lekcja 5: Listy i krotki
- Tworzenie list i krotek.
- Indeksowanie, dodawanie, usuwanie elementów.
- Operacje na listach.
Lekcja 6: Słowniki i zbiory
- Tworzenie i operacje na słownikach.
- Iteracja po słownikach.
- Zbiory i ich zastosowania.
Lekcja 7: Instrukcje warunkowe
- Instrukcje if, elif, else.
- Operatory logiczne w praktyce.
Lekcja 8: Pętle
- Pętla for i while.
- Instrukcje break, continue, else w pętlach.
Lekcja 9: Funkcje
- Tworzenie i wywoływanie funkcji.
- Argumenty i wartości domyślne.
- Funkcje anonimowe (lambda).
Lekcja 10: Praca z plikami
- Otwieranie, czytanie i zapisywanie plików.
- Obsługa błędów przy pracy z plikami.
Lekcja 11: Podstawy programowania obiektowego
- Klasy i obiekty.
- Atrybuty i metody.
- Prosty projekt: Zarządzanie listą zadań.
Lekcja 12: Tworzenie prostego kalkulatora
- Łączenie funkcji i warunków.
- Obsługa błędów (try-except).
Lekcja 13: Zarządzanie plikami tekstowymi
- Program do przechowywania i wyszukiwania notatek w plikach.
Lekcja 14: Prosta gra tekstowa w Python
- Wprowadzenie do pętli i logiki gry.
- Interaktywna gra konsolowa, np. zgadywanie liczby.

Jeśli chciałbyś być poinformowany o następnych kursach to zapisz się do naszego newslettera: