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