Otwieram nowy materiał o Pythonie 🧨! Dzisiaj dowiesz się czym w języku Python jest niejaka krotka, jedna z kilku struktur danych przeznaczonych do przechowywania wielu elementów 🔥! Opiszę Ci czym się charakteryzuje, jak wygląda w kodzie i w jakich przypadkach warto jej użyć zamiast pozostałych. Zapraszam 😉!

WYJAŚNIAM CZYM JEST KROTKA W JĘZYKU PYTHON!

Najpierw sam termin, potem zastosowania, a na końcu ukazanie budowy w kodzie źródłowym, czyli tak jak zwykle 😜!

Czym jest krotka w języku Python?

W Pythonie, krotka (ang. tuple) to struktura danych przeznaczona do przechowywania wielu elementów, która funkcjonuje dokładnie tak jak lista, czyli zezwala na powtarzanie się elementów, a ich kolejność jest zapamiętywana ✅. Jedyną różnicą jest to, iż krotka jest niemodyfikowalna 🔒! To oznacza, że nie można zmienić jej zawartości przez cały czas od momentu jej utworzenia i wprowadzenia elementów 🚫! Tym się różni krotka od listy!

Warto wiedzieć w jakich przypadkach jest lepiej użyć krotki!

Kiedy lepiej użyć krotki w języku Python, zamiast listy?

Krotki w Pythonie są użyteczne, gdy już na etapie pisania kodu źródłowego wiesz jak powinna wyglądać struktura danych, ile ma mieć wartości i jakie konkretnie 💡. Także jeżeli w którymkolwiek momencie będzie zależało Ci na zdefiniowaniu takich elementów, które mają być chronione przed późniejszymi modyfikacjami, wtedy lepiej użyć krotki, zamiast listy 👍.

Wszystko co wymagało wyłożenia teoretycznego. Przechodzimy do kodu!

Jak utworzyć krotkę w języku Python?

Krotkę w Pythonie tworzymy na 2 sposoby 👇:

  1. stworzenie pustej krotki (nieużyteczne, jak nie można później tego zmienić 😆),
  2. stworzenie krotki zawierającej elementy.

Krotka wygląda bardzo podobnie do listy, tylko zamiast nawiasów kwadratowych dodajemy okrągłe 👇:

my_tuple = ()

To jest postać pustej krotki, której potem nie będziemy mogli zmienić 🔒. A to jest przykład krotki z liczbami całkowitymi (bez ułamka) w środku 👇:

my_tuple = (1, 2, 3)

i tego też nie będziemy mogli zmienić ⛔! Próba przypisania nowej wartości w którymkolwiek elemencie 👇:

my_tuple[0] = 5

spowoduje błąd typu "TypeError" i Python przerwie dalsze wykonywanie programu (o ile nie przechwycimy wyjątku) 🚫! Czyli zauważ, że to działa jak tworzenie stałych, tylko w kontekście całej struktury danych 🔥!

Python zezwala na wstawianie elementów różnych typów danych do jednej struktury (w odróżnieniu od wielu innych języków) 👇:

my_tuple = [1, 'Mój łańcuch znaków', 3.5]

aczkolwiek nie radzę tak robić ❌. Mając różnorodne typy danych, zdecydowanie trudniej korzystać z takiej struktury w środku pętli 💥. Każdy typ danych wymaga innego podejścia i np. liczby odejmiesz od siebie bez problemu, natomiast przy łańcuchach znaków już będziesz mieć problem 😐. Lepiej jest rozdzielić sobie kod tak, że jedna struktura przechowuje wartości jednego typu 👍.

Krotka w języku Python

Krotka w języku Python to niemodyfikowalna struktura danych do przechowywania wielu elementów, których nie można później zmienić przez cały czas działania programu.

Kolejny wątek, to uzyskiwanie dostępu do elementów 👀!

Jak pobierać elementy z krotki w języku Python?

Korzystamy dokładnie z tego samego zapisu, co przy pobieraniu elementów z listy 😄. Posługujemy się notacją indeksową wskazującą na dany element w kolejności przy użyciu indeksu (liczba całkowita określająca numer porządkowy liczony od zera ℹ️). Krotka również zapamiętuje kolejność dodawanych elementów, stąd gwarancja, że element wstawiony jako N-ty w kolejności, będzie znajdować się do indeksem N - 1 👍.

Oto przykład pobierania pierwszego elementu z krotki w kolejności 👇:

print(my_tuple[0])

Zaczynasz od podania nazwy zmiennej krotki. Następnie otwierasz parę nawiasów kwadratowych, a w środku nich wstawiasz liczbę nazywaną indeksem. Zobacz, że występuje 0 (zero), a nie jeden ⚠️! Gdy odwołujesz się do danego elementu poprzez indeks, zawsze odejmujesz wartość o jeden i to dotyczy każdej operacji tego typu (wynika to z architektury tablicy z języka C)! Gdy zainteresuje nas piąty element w kolejności 👇:

print(my_tuple[4])

to piszesz indeks nr 4 😉! Tylko uważaj aby nie wyjść poza zakres krotki i nie próbować odwołać się do elementu, którego nie ma 💥! Jeżeli tak się stanie i nie przechwytujesz wyjątku, Python przerwie Twój program i wypisze błąd typu "IndexError", czyli indeks jest "poza zasięgiem" krotki.

Python wyjątkowo obsługuje też sięganie do indeksów ujemnych! To umożliwia nam uzyskiwanie dostępu od końca 😮! Na przykład jak napiszemy w ten sposób 👇:

print(my_tuple[-1])

to będzie oznaczało pobranie ostatniego elementu. A jak zechcesz pobrać trzeci element od końca, to napiszesz tak 👇:

print(my_tuple[-3])

W tym przypadku także musisz obserwować czy nie wychodzisz poza granice krotki. Gdyby tak się kiedykolwiek stało, zobaczysz ten sam efekt awarii programu opisany wyżej.

W ten sposób możesz sięgać bezpośrednio do konkretnych elementów krotki, natomiast nie jest to praktyka jaka powinna być regularnie stosowana ⚠️! Co innego, jak odwołujesz się do pierwszego czy ostatniego elementu, jako że to pewnego rodzaju "punkty kluczowe", aczkolwiek w pozostałej części przypadków lepiej jest podejść do tego w sposób wyszukania elementu po podanych kryteriach np. "znajdź mi element w postaci liczby 42" 🔍.

Warto jeszcze dowiedzieć się jak pobierać długość krotki 👍!

Jak wyznaczyć liczbę elementów w krotce w języku Python?

Do wyznaczania długości krotki czy jakiejkolwiek innej struktury danych w Pythonie, korzystamy z funkcji "len", do której wprowadzamy parametr w postaci tejże struktury. Jeżeli mamy taką krotkę 👇:

my_tuple = ('A', 'B', 'C')

to wywołanie funkcji "len" z wprowadzeniem jej do środka 👇:

print(len(my_tuple))

zwróci liczbę 3, bo krotka jest 3-elementowa 👍!

Przechodzę do metod i to będzie tyle 😊.

Jakie metody posiada krotka w języku Python?

Krotka w Pythonie zawiera w sobie tylko 2 następujące metody 👇:

  1. count,
  2. index.

Szybko je zaprezentuję ⏩! Umawiamy się, że będą opierać się o krotkę takiej postaci 👇:

my_tuple = (1, 2, 3)
count

"count" przyjmuje jeden parametr w postaci elementu i zwraca liczbę jego wystąpień w krotce. Prosty przykład użycia 👇:

print(my_tuple.count(3))

Liczba 3 pojawia się tylko jeden raz w krotce, więc wynikiem będzie wartość 1 ✔️.

Metoda "count" krotki w języku Python

Metoda "count" zlicza wszystkie wystąpienia elementu podanego w parametrze i zwraca na wyjściu liczbę wystąpień.

index

"index" w krotce działa identycznie jak "index" w liście 🙂. Przeszukuje krotkę celem odnalezienia podanego w parametrze elementu i jeżeli go znajdzie (a konkretniej jego pierwsze wystąpienie), zwraca na wyjściu liczbę jako indeks na jakim jest "położony" 🎯.

Oto przykład 👇:

print(my_tuple.index(3))

Liczba 3 znajduje się na trzecim miejscu, a drugim indeksie i taki zostanie zwrócony na wyjściu ✔️.

Zwracam szczególną uwagę na małą nieprzyjemność 😳. Jeżeli funkcji nie uda się odnaleźć wskazanego elementu, to dojdzie do zgłoszenia błędu przez Pythona typu "ValueError" i przerwie dalsze wykonywanie programu, jeśli nie przechwytujemy wyjątku ⛔. Korzystając z tej funkcji upewnij się, że element którego szukasz, rzeczywiście istnieje 🙂.

Metoda "index" krotki w języku Python

Metoda "index" bada całą krotkę w poszukiwaniu wskazanego elementu i zwraca indeks oznaczający miejsce pierwszego wystąpienia. Wywołuje awarię programu, jeśli nie można było znaleźć elementu!


To już wszystko. Temat został pięknie wyjaśniony 😉!

PODOBNE ARTYKUŁY