Krotka (tuple) w Pythonie – najważniejsze informacje

Krotka (ang. tuple) w Pythonie to niezmienny typ sekwencji, który pozwala przechowywać wiele wartości w jednym obiekcie, podobnie jak lista, ale z ważnymi różnicami dotyczącymi ich zachowania i zastosowania.

Czym jest krotka w Pythonie?

  • Krotka to sekwencja wartości, które mogą być dowolnego typu (np. liczby, napisy, inne krotki);
  • Elementy krotki są indeksowane liczbami całkowitymi, przy czym pierwszy element ma indeks 0;
  • Najważniejsza cecha krotek: są niezmienne (immutable) – po utworzeniu nie można zmienić zawartości krotki, czyli nie można dodać, usunąć ani zmienić żadnego z jej elementów;
  • Krotki są typem haszowalnym, więc mogą być używane jako klucze w słownikach i elementy zbiorów.

Tworzenie krotek – składnia i przykłady

Krotkę można utworzyć na kilka sposobów:

# Najczęściej w nawiasach okrągłych
t1 = (1, 2, 3, 'abc', 4.5)
# Bez nawiasów, wystarczą przecinki (ale zwykle stosuje się nawiasy dla jasności)
t2 = 1, 2, 3
# Krotka jednoelementowa (singleton) – UWAGA: konieczny przecinek!
t_single = (42,)
print(type(t_single)) # <class 'tuple'>

Jeśli utworzymy krotkę bez przecinka – (42) – Python potraktuje to jako zwykłą liczbę w nawiasach, a nie krotkę.

Możemy też tworzyć krotki przy pomocy funkcji tuple():

# Pusta krotka
empty = tuple()
# Krotka ze znaków napisu
letters = tuple('Python') # ('P', 'y', 't', 'h', 'o', 'n')

Odwoływanie się do elementów, indeksowanie i slicing

  • Elementy wybierane są jak w listach – przez indeks:

krotka = (10, 20, 30, 40)
print(krotka[0]) # 10
print(krotka[-1]) # 40
  • Można pobierać wycinki (ang. slicing):

print(krotka[1:3]) # (20, 30)

Właściwości – kluczowe różnice względem list

Cecha Krotka Lista
Zmienność Niezmienna Zmienna
Typ nawiasów Okrągłe () Kwadratowe []
Metody modyfikacji Brak append, remove, itd.
Możliwość haszowania Tak Nie
Możliwość użycia jako klucz słownika Tak Nie

Podstawowe operacje na krotkach

  • Indeksowanie i slicing – identycznie jak w listach.
  • Łączenie (+) oraz powielanie (*):

a = (1, 2)
b = (3, 4)
c = a + b # (1, 2, 3, 4)
d = a * 3 # (1, 2, 1, 2, 1, 2)
  • len() – długość krotki:

len(a) # 2
  • Sprawdzanie zawartości

1 in a # True
5 in a # False
  • Porównywanie krotek odbywa się leksykograficznie – najpierw pierwszy element, potem drugi itd.

Praktyczne zastosowania krotek

  • Przechowywanie stałych zestawów danych, które nie będą modyfikowane.
  • Zwracanie wielu wartości z funkcji (Python umożliwia np. return x, y, co jest de facto zwracaniem krotki).
  • Szybka zamiana wartości zmiennych:

a, b = b, a # obie strony to krotki – bardzo idiomatyczne w Pythonie
  • Użycie jako klucz w słowniku:

points = {(0,0): "origin", (1,2): "A"}
  • Przechowywanie rekordów – np. współrzędne, rgb, dane osobowe bez późniejszych zmian.

Ograniczenia i dobre praktyki

  • Krotki nie mają metod do modyfikacji elementów (brak .append(), .remove() itd.).
  • Jeśli elementem krotki jest obiekt zmienny (np. lista), zawartość tej listy można zmienić, co oznacza, że niektóre krotki mogą być „quasi-niemutowalne”.
  • Często używa się krotek do rozpakowywania (unpacking) – przypisanie wielu zmiennych naraz:

a, b, c = (1, 2, 3)
# lub nawet
email = "[email protected]"
user, domain = email.split("@")

Przydatne metody i funkcje

  • .count(x) – liczba wystąpień wartości w krotce
  • .index(x) – zwraca indeks pierwszego wystąpienia wartości
  • tuple() – konwersja do krotki (np. z listy lub łańcucha znaków)

Kiedy warto stosować krotki?

  • Gdy dane nie powinny być zmieniane w trakcie działania programu.
  • Tam, gdzie wymagana jest większa szybkość i mniejszy narzut pamięci (krotki są wydajniejsze niż listy).
  • W sytuacjach wymagających obiektów haszowalnych/kluczy.
  • Do zwracania wielu wartości z funkcji oraz przechowywania niezmiennych rekordów.

Podsumowanie – najważniejsze cechy krotek

  • Niezmienność – bezpieczeństwo danych.
  • Czytelność – rozpoznawalna składnia (nawiasy okrągłe).
  • Szybkość – bardziej efektywne od list tam, gdzie niezmienność jest zaletą.
  • Wszechstronność – mogą zawierać różne typy danych, być zagnieżdżone i służyć jako klucze.

Dzięki znajomości krotek można pisać bardziej przejrzysty, bezpieczny i wydajny kod w Pythonie, szczególnie w miejscach, gdzie ważna jest niezmienność danych.

Programista i twórca serwisu Creative Coding, absolwent Politechniki Warszawskiej (WEiTI). Od 10+ lat łączy front‑end, grafikę generatywną i narzędzia dla twórców; opublikował 120+ projektów i artykułów, prowadził warsztaty dla 2 000+ uczestników. Pracuje z JavaScriptem, Three.js, P5.js i GLSL, bada wydajność i dokumentuje procesy, tworząc praktyczne przewodniki dla osób łączących kod z obrazem, dźwiękiem i interakcją.
Zostaw komentarz

Komentarze

Brak komentarzy. Dlaczego nie rozpoczniesz dyskusji?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *