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ć.
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.
# 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.
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.
# 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 +
.
# 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.
# 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.
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.
# 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().
krotka = (3, 4, 7)
print(len(krotka))
Wynik
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 funkcja | Dział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:
![Szymon Skoneczny](https://softinery.com/pl/wp-content/uploads/sites/5/2023/11/SzM-150x150.webp)
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.