Przejdź do treści
Strona główna » Kurs Python: krotka (tuple)

Kurs Python: krotka (tuple)

Krotka (ang. tuple) to jeden z wbudowanych struktur danych w Pythonie, podobny do listy. Może przechowywać dane dowolnego typu i są one indeksowane liczbami całkowitymi. W przeciwieństwie do list, krotki są niemutowalne, czyli po utworzeniu nie można ich zmieniać. Choć są one wykorzystywane w programowaniu zdecydowanie rzadziej niż listy, to ich znajomość bywa niezbędna w specyficznych zastosowaniach, np. w obliczeniach czy analizie danych.

Tworzenie krotek w Pythonie

Krotkę tworzymy poprzez wymienienie elementów w nawiasach okrągłych. Jej elementy mogą być różnego typu, tak jak w poniższym przykładzie, w którym zawiera ona wartości typu int, float oraz string.

Python
# Tworzenie krotki
moja_krotka = (1, 2, 3, 'abc', 2.5)

# Wyświetlenie krotki
print("Krotka:", moja_krotka)

Wynik

Krotka: (1, 2, 3, 'abc', 2.5)

Dość nieintuicyjne jest tworzenie krotki zawierającej jeden element. Żeby stworzyć jednoelementową krotkę, należy po pierwszym elemencie umieścić przecinek, pomimo tego, że nie występują po nim żadne kolejne elementy.

Python
krotka = ("jablko",)
print(type(krotka))

# To nie jest krotka
nie_krotka = ("jablko")
print(type(nie_krotka))

Wynik

<class 'tuple'>
<class 'str'>

Dostęp do elementów krotki

Do poszczególnych elementów krotki odwołujemy się poprzez indeksy, pamiętając przy tym, że pierwszy element ma indeks 0.

Python
# Dostęp do elementów krotki
moja_krotka = (1, 2, 3, 'abc', 2.5)
pierwszy_element = moja_krotka[0]
trzeci_element = moja_krotka[2]

print("Pierwszy element:", pierwszy_element)
print("Trzeci element:", trzeci_element)

Wynik

Pierwszy element: 1
Trzeci element: 3

Konkatenacja

Konkatenacja to operacja łączenia dwóch lub więcej ciągów znaków, sekwencji lub struktur danych w jeden dłuższy ciąg lub strukturę. W języku Python konkatenacja krotek odbywa się poprzez operator +.

Python
# Tworzenie dwóch krotek
krotka1 = (1, 2, 3)
krotka2 = ('a', 'b', 'c')

# Konkatenacja
nowa_krotka = krotka1 + krotka2

# Wyświetlenie wyniku
print("Krotka 1:", krotka1)
print("Krotka 2:", krotka2)
print("Po konkatenacji:", nowa_krotka)

Wynik

Krotka 1: (1, 2, 3)
Krotka 2: ('a', 'b', 'c')
Po konkatenacji: (1, 2, 3, 'a', 'b', 'c')

Cięcie (slicing)

Slicing w Pythonie to technika “wycinania” fragmentów sekwencji, takich jak listy czy ciągi znaków. Podobnie jak w listach, aby wyciąć fragment krotki, korzystamy z nawiasów kwadratowych, w których umieszczamy zakres w następujący sposób: indeks_początkowy:indeks_końcowy. Pamiętajmy przy tym, że element znajdujący się na położeniu indeks_końcowy nie zawiera się w wyciętym fragmencie, co wynika ze sposobu przechowywania danych w pamięci komputera.

Python
# Tworzenie krotki
moja_krotka = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

# Slicing krotki
fragment_krotki = moja_krotka[2:6]

# Wyświetlenie wyniku
print("Krotka:", moja_krotka)
print("Fragment krotki:", fragment_krotki)

Wynik

Krotka: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
Fragment krotki: (2, 3, 4, 5)

Rozpakowanie krotki

Rozpakowanie krotki polega na przypisaniu wartości elmentów do zmiennych. W Pythonie dokonujemy tego w jednej instrukcji, jak w poniższym przykładzie.

Python
samochod = ("Toyota", "Camry", 2022)

# Rozpakowywanie krotki
marka, model, rok_produkcji = samochod

# Wyświetlanie informacji o samochodzie
print("Marka:", marka)
print("Model:", model)
print("Rok produkcji:", rok_produkcji)

Wynik

Marka: Toyota
Model: Camry
Rok produkcji: 2022

Usuwanie krotek

Krotkę usuwamy przy użyciu operatora del.

Python
# Tworzenie krotki
moja_krotka = (1, 2, 3, 4, 5)

# Wyświetlenie krotki przed usunięciem
print("Krotka przed usunięciem:", moja_krotka)

# Usunięcie krotki
del moja_krotka

print("Krotka po usunięciu:", moja_krotka)

Wynik

Krotka przed usunięciem: (1, 2, 3, 4, 5)
NameError: name 'moja_krotka' is not defined

Liczba elementów krotki

Tę operację wykonujemy przy użyciu len().

Python
krotka = (3, 4, 7)
print(len(krotka))

Wynik:

3

Sortowanie krotki

Krotka jest niezmienna (niemutowalna), co oznacza, że nie możemy jej modyfikować po jej utworzeniu. Jeżeli chcemy posortować elementy krotki, to musimy przypisać wynik do nowej zmiennej. Możemy to zrobić w poniższy sposób:

Python
# Krotka
data = (3, 1, 2)

# Przekształcenie krotki na listę, sortowanie i przekształcenie z powrotem na krotkę
sorted_data = tuple(sorted(data))

print(sorted_data)

Wynik:

(1, 2, 3)

Inne operacje

W Pythonie mamy dostęp do zestawu funkcji wbudowanych do operacji na krotkach. Kilka z nich wraz z ich działaniem wymieniłem poniżej.

Wbudowana funkcjaDziałanie
all()zwraca wartość true, jeśli wszystkie elementy mają wartość true lub jeśli krotka jest pusta
any()zwraca wartość true, jeśli którykolwiek element krotki ma wartość true. jeśli krotka jest pusta, zwróć wartość false
count()zwraca liczbę wystąpień danego elementu w krotce
enumerate()zwraca obiekt wyliczeniowy krotki
max()zwraca maksymalny element podanej krotki
min()zwraca minimalny element podanej krotki
sum()sumuje liczby w krotce
sorted()zwraca nową krotkę zawierającą posortowane elementy z oryginalnej krotki

Pobierz notatnik Jupyter z kodem


Podsumowanie

Z artykułu dowiedziałeś się czym jest krotka i jak wykonywać operacje na krotkach, takie jak: tworzenie, konkatenacja, usuwanie czy cięcie.

Przeczytaj inne materiały:

Python: słowniki

Python: typy danych

Szymon Skoneczny

O autorze

Dr hab. inż. Szymon Skoneczny specjalizuje się w informatyce przemysłowej i symulacjach komputerowych. Współpracował z takimi uczelniami jak Politechnika Krakowska i Akademia Górniczo-Hutnicza oraz firmami, m. in. Siemens, Electricite de Fracne, ArcelorMittal.