Właśnie do tego służą typy złożone: listy, krotki, słowniki i zbiory. Każdy z nich ma swoje zastosowanie i charakter. Zrozumienie różnic między nimi to kluczowy krok w nauce Pythona.
Listy – elastyczne kolekcje danych
Lista to uporządkowany zbiór elementów, które mogą mieć różne typy.
Możesz w niej przechowywać liczby, teksty, a nawet inne listy.
Listy tworzy się za pomocą nawiasów kwadratowych [].
Python1 2owoce = ["jabłko", "banan", "wiśnia"] print(owoce)
Dostęp do elementów
Indeksy zaczynają się od zera:
Python1 2print(owoce[0])# jabłko print(owoce[2])# wiśnia
Możesz też pobrać element od końca:
Python1print(owoce[-1])# wiśnia
Modyfikacja listy
Listy są mutowalne, co oznacza, że można je zmieniać:
Python1 2owoce[1] = "gruszka" print(owoce)
Dodawanie i usuwanie elementów
Python1 2 3 4owoce.append("śliwka")# dodanie na końcu owoce.insert(1, "malina") # wstawienie na konkretną pozycję owoce.remove("jabłko")# usunięcie po wartości del owoce[0]# usunięcie po indeksie
Długość listy
Python1print(len(owoce))
Kopiowanie list
Błąd początkujących to przypisanie jednej listy do drugiej — wtedy obie wskazują na ten sam obiekt:
Python1 2 3 4a = [1, 2, 3] b = a b.append(4) print(a)# [1, 2, 3, 4] — obie zmienne odnoszą się do tej samej listy
Aby skopiować listę, użyj copy() lub [:]:
Python1 2 3 4b = a.copy() b.append(5) print(a)# [1, 2, 3, 4] print(b)# [1, 2, 3, 4, 5]
Krotki (tuples) – dane niezmienne
Krotka (tuple) wygląda jak lista, ale jest niemutowalna — nie można zmienić jej elementów po utworzeniu.
Tworzy się ją za pomocą nawiasów okrągłych ().
Python1 2wspolrzedne = (10, 20) print(wspolrzedne[0])# 10
Próba zmiany:
Python1wspolrzedne[0] = 30# błąd!
Dlaczego krotki istnieją?
- są szybsze od list,
- można je używać jako klucze w słownikach,
- dobrze opisują dane, które nie powinny się zmieniać (np. współrzędne punktu, daty, rozmiary).
Krotka jednoelementowa
Aby Python rozpoznał jednoelementową krotkę, musi mieć przecinek:
Python1 2x = (5,) print(type(x))# <class 'tuple'>
Bez przecinka x = (5) to po prostu liczba w nawiasie.
Słowniki – dane opisane kluczami
Słownik (ang. dictionary) przechowuje dane w parach klucz → wartość.
Tworzy się go za pomocą klamerek {}.
Python1 2osoba = {"imie": "Kacper", "wiek": 30, "miasto": "Warszawa"} print(osoba["imie"])
Dodawanie i zmiana wartości
Python1 2 3osoba["zawod"] = "programista" osoba["wiek"] = 31 print(osoba)
Usuwanie elementów
Python1 2del osoba["miasto"] print(osoba)
Iteracja po słowniku
Python1 2for klucz, wartosc in osoba.items(): print(klucz, "→", wartosc)
Sprawdzanie klucza
Python1 2if "imie" in osoba: print("Znam imię!")
Słowniki są niezwykle przydatne, gdy dane mają strukturę opisową, np. dane użytkownika, konfigurację, wyniki API.
Zbiory – unikalne elementy
Zbiór (ang. set) to kolekcja nieuporządkowanych i niepowtarzalnych elementów.
Tworzy się go za pomocą {} lub funkcji set().
Python1 2kolory = {"czerwony", "zielony", "niebieski"} print(kolory)
Automatyczne usuwanie duplikatów
Python1 2kolory = {"zielony", "zielony", "niebieski"} print(kolory)# {'zielony', 'niebieski'}
Operacje na zbiorach
Zbiory pozwalają wykonywać operacje matematyczne:
Python1 2 3 4 5 6 7A = {1, 2, 3, 4} B = {3, 4, 5, 6} print(A | B)# suma print(A & B)# część wspólna print(A - B)# różnica print(A ^ B)# różnica symetryczna
Zastosowania zbiorów
- usuwanie duplikatów z list,
- porównywanie zbiorów danych,
- szybkie sprawdzanie przynależności (
indziała bardzo wydajnie).
Kiedy używać którego typu?
| Typ | Zmienność | Kolejność | Klucze | Unikalność | Przykładowe użycie |
|---|---|---|---|---|---|
| list | Tak | Tak | Nie | Nie | Kolekcja danych w określonej kolejności |
| tuple | Nie | Tak | Nie | Nie | Stałe dane (np. współrzędne) |
| dict | Tak | Tak (od Pythona 3.7) | Tak | Tak | Dane opisowe, konfiguracje |
| set | Tak | Nie | Nie | Tak | Zbiory unikalnych wartości |
Praktyczny przykład
Załóżmy, że masz dane o studentach w postaci słownika, gdzie każdy klucz to imię, a wartość to lista ocen. Chcesz policzyć średnią dla każdego z nich.
Python1 2 3 4 5 6 7 8 9studenci = { "Kasia": [5, 4, 5, 3], "Tomek": [4, 4, 4], "Ania": [5, 5, 5, 5] } for imie, oceny in studenci.items(): srednia = sum(oceny) / len(oceny) print(imie, "→", round(srednia, 2))
Dzięki połączeniu słowników i list możesz reprezentować złożone dane w sposób logiczny, czytelny i elastyczny.
Podsumowanie
Typy złożone w Pythonie to narzędzia, które pozwalają grupować, organizować i przetwarzać dane w złożony sposób. W praktyce programista korzysta z nich non stop — od prostych list po zagnieżdżone struktury danych, które opisują całe systemy.
- Poznałeś listy — elastyczne, dynamiczne, do ogólnego użytku.
- Zrozumiałeś krotki — szybkie i bezpieczne, gdy dane nie mają się zmieniać.
- Opanowałeś słowniki — idealne do opisu i mapowania danych.
- Nauczyłeś się zbiorów — do pracy z unikalnymi wartościami i operacjami matematycznymi.
Zrozumienie tych struktur to klucz do pisania programów, które nie tylko działają, ale są czyste, logiczne i skalowalne. Wiedza o różnicach między typami i ich zastosowaniach pozwala wybrać odpowiednią strukturę dla każdego problemu.
Następny krok: wyrażenia listowe (list comprehensions), słownikowe i zbiórów, które ułatwiają tworzenie i przekształcanie kolekcji w elegancki sposób.



