10.1 Krotka i jej właściwości
Krotki należą do czterech wbudowanych typów kolekcji w Python.
Jak już wiesz, Python ma kilka wbudowanych typów danych, które pozwalają przechowywać grupy obiektów. Są to list
— lista, tuple
— krotka, set
— zbiór, dictionary
— słownik. Dziś zajmiemy się drugim i jednym z najprostszych z nich — krotką.
Krotka (tuple)
pozwala przechowywać kilka elementów. Każdy element ma swój numer porządkowy, co czyni krotkę uporządkowaną — ordered. Pod tym względem przypomina listę.
Zmieniać krotki nie można — raz utworzona, pozostaje niezmienna, co czyni ją idealną do przechowywania danych, które nie powinny się zmieniać w programie. Dlatego jej druga cecha to niezmienność (immutable).
Jeśli chodzi o duplikaty — w krotce można przechowywać takie same elementy kilka razy — allow duplicates. Ponownie, bardzo przypomina listę.
Warto wiedzieć. Można myśleć o krotce jak o niezmiennej liście, która zamiast nawiasów kwadratowych []
używa okrągłych ()
.
10.2 Tworzenie krotki
Krotki — to niezmienne sekwencje elementów, które można tworzyć na różne sposoby. Oto najbardziej popularne z nich:
Bezpośrednie zadeklarowanie:
Krotki można stworzyć bezpośrednio za pomocą nawiasów okrągłych () i przecinków do rozdzielania elementów.
tuple1 = (1, 2, 3)
tuple2 = ("apple", "banana", "cherry", "apple", "cherry")
tuple3 = (1, "apple", True)
Bez nawiasów:
Python pozwala tworzyć krotki bez użycia nawiasów, po prostu rozdzielając elementy przecinkami.
tuple1 = 1, 2, 3
tuple2 = "apple", "banana", "cherry", "apple", "cherry"
tuple3 = 1, "apple", True
Krotka z jednym elementem:
Aby stworzyć krotkę z jednym elementem trzeba postawić przecinek po tym elemencie
.
tuple1 = (1,)
tuple2 = ("apple",)
tuple3 = (True,)
Użycie tuple()
:
Funkcja tuple()
przekształca obiekt iterowalny w krotkę. To może być lista, ciąg znaków lub inny obiekt iterowalny.
list_to_tuple = tuple([1, 2, 3])
10.3 Rozpakowywanie elementów krotki
Podczas pracy z krotkami można zapakować kilka elementów w jedną krotkę lub rozpakować krotkę na kilka zmiennych, co upraszcza kod:
Podstawowe rozpakowywanie
Przykład rozpakowywania krotki do zmiennych:
my_tuple = (1, 2, 3)
x, y, z = my_tuple
Tutaj zmienne x
, y
i z
otrzymują wartości 1
, 2
i 3
odpowiednio.
Zaawansowane rozpakowywanie
Python obsługuje również zaawansowane rozpakowywanie, które pozwala wyodrębniać części krotki do listy, używając symbolu *:
a, *b, c = (1, 2, 3, 4, 5) # a = 1, b = [2, 3, 4], c = 5
W tym przykładzie a
i c
otrzymują pierwszą i ostatnią wartość, a b
staje się listą ze wszystkimi pozostałymi wartościami.
Zastosowanie w funkcjach
Rozpakowywanie krotek jest często używane przy przekazywaniu argumentów do funkcji. To szczególnie wygodne, gdy funkcja przyjmuje zmienną liczbę argumentów lub gdy argumenty są wcześniej spakowane w krotki lub listy:
def func(a, b, c):
print(a, b, c)
values = (1, 2, 3)
func(*values)
Specyfika użycia
Rozpakowywanie krotek wymaga dokładnego dopasowania liczby elementów krotki do liczby zmiennych, którym są przypisywane, inaczej zostanie wygenerowany błąd. Jednak użycie *
do zbierania nadmiarowych elementów pozwala uniknąć tego błędu, czyniąc kod bardziej elastycznym na zmiany w danych.
10.4 Lista metod
Krotki — to obiekty niezmienne, dlatego mają bardzo mało metod. Tylko dwie 😊
Funkcja count(x)
:
Zwraca liczbę, ile razy x
pojawia się w krotce. Jest to przydatne do liczenia liczby określonych elementów.
t = (1, 2, 3, 2, 4, 2)
print(t.count(2)) # Wyświetli 3
Funkcja index(x)
:
Zwraca indeks pierwszego wystąpienia elementu x
w krotce. Jeśli element nie zostanie znaleziony, pojawia się wyjątek ValueError
.
t = (1, 2, 3, 2, 4, 2)
print(t.index(3)) # Wyświetli 2
Chociaż to wszystko, jeśli chodzi o metody klasy tuple, to nie oznacza, że nie można z nimi nic zrobić. Można, tylko będzie to trochę trudniejsze.
GO TO FULL VERSION