Blog JSystems - uwalniamy wiedzę!

Szukaj

Krotki, w skrócie

Krotka jest niezmienna:

t = (1, 2, 3)
print(t[0])      # 1
# t[0] = 9       # blad: krotka jest niezmienna
Krotka vs lista - zmienność danych
Listę [ ] można zmieniać, krotki ( ) po utworzeniu zmienić się nie da

Krotki w zasadzie podobne są bardzo do list. Właściwie to krotka jest taką listą której zawartości nie można zmieniać, w związku z czym nie posiada np. funkcji sortowania czy odwracania które działają przecież bezpośrednio na zbiorze. Nie posiadają też np. funkcji insert czy append. Zawartość krotki deklarujemy przy jej definicji, potem nie możemy już jej zmienić.

Skoro krotki są takimi ograniczonymi listami to właściwie po co nam one? Typ danych który po zaincjalizowaniu zmiennej jest "tylko do odczytu" może być czasami przydatny. Ponadto krotki działają szybciej niż listy, z tego też powodu wiele bardzo użytecznych funkcji z różnorakich bibliotek Pythona zwraca nam właśnie taki typ danych.

Deklaracja i uzupełnianie krotek danymi

Krotki podobnie jak listy mają dwa możliwe warianty deklaracji:

krotka=("Tytanowy Janusz","Molibdenowy Mateusz",777,"Przypadkowy tekst",[12,55,"koza"])
krotka2=tuple()

Przyjrzyjmy się pierwszej linii. Deklaracja krotki bardzo przypomina deklarację listy, gdyby nie to że używamy nawiasów okrągłych w miejsce kwadratowych. Jak widać w przykładzie, krotka podobnie jak lista może przechowywać elementy różnorakich typów, w tym np. listy. Piętro niżej pokazuję "krotkowy" odpowiednik "lista=list()".

Pobieranie wartości z krotek

Tu zasady są identyczne jak w przypadku list. Stosujemy te same konstrukcje do pobierania i iterowania po elementach. Nie będę powtarzał tych samych przykładów z wyjaśnieniami zmieniając tylko nawiasy kwadratowe na okrągłe, a słowo lista na krotka ponieważ zostało to już dosyć szczegółowo opisane w rozdziale dotyczącym list. Na takiej samej zasadzie działa sprawdzanie długości krotki (funkcją "len"),również sprawdzenie czy element znajduje się w krotce. Aby jednak nie kończyć tego tematu tym lakonicznym opisem, poniżej przedstawiam kilka przykładów:

madness=("Longer","jeśli","to","czytasz i nie jesteś","lamus","to","podrzuć","jakiegoś","dobrego","mema")
print(madness[2:7])
print(madness[0:5:2])
if "Longer" in madness:
    print("Wygrałem! :D")
for m in madness:
    print(m)
Szkolenie Python od podstaw, przez analizę danych, do machine learning w JSystems

Ten kurs daje Ci solidne podstawy Pythona. Jeśli chcesz pójść dalej i pod okiem trenera dojść od pierwszej linijki kodu do własnego modelu uczenia maszynowego, sprawdź nasze pięciodniowe szkolenie Python od podstaw, przez analizę danych, do machine learning. Pierwsze trzy dni to Python w praktyce: typy i kolekcje, instrukcje warunkowe i pętle, funkcje, moduły i pakiety, pliki tekstowe, usługi sieciowe oraz praca z bazą PostgreSQL. Czwarty dzień to analiza danych w pandas (wczytywanie CSV, TSV i XLS, filtrowanie, agregacje, statystyki) i wizualizacja w Matplotlib, Seaborn oraz Plotly. Piąty dzień to uczenie maszynowe w scikit-learn: regresja liniowa i logistyczna, drzewa decyzyjne, las losowy, XGBoost, walidacja predykcji, dobór hiperparametrów i przeciwdziałanie przeuczeniu. Szkolenie ma terminy gwarantowane, czyli odbywa się niezależnie od wielkości grupy.

Szkolenie Python od podstaw, przez analizę danych, do machine learning

To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.

★★★★★Średnia ocena naszych szkoleń w Google: 5/5

Najczęściej zadawane pytania

Czym różni się krotka od listy w Pythonie?
Krotka jest niezmienna - jej zawartość deklarujesz przy tworzeniu i potem nie da się jej zmienić. Listę można modyfikować, dlatego krotka nie ma funkcji takich jak sortowanie, odwracanie, insert czy append, które działają bezpośrednio na zbiorze.
Po co używać krotek, skoro są ograniczone?
Typ danych tylko do odczytu bywa przydatny, gdy chcesz zabezpieczyć zawartość przed zmianą po inicjalizacji. Krotki działają też szybciej niż listy, dlatego wiele użytecznych funkcji z bibliotek Pythona zwraca właśnie krotki.
Jak zadeklarować krotkę w Pythonie?
Deklaracja przypomina listę, ale zamiast nawiasów kwadratowych używasz okrągłych, na przykład krotka z kilkoma wartościami w nawiasach. Pustą krotkę tworzysz przez wywołanie tuple, analogicznie do list poprzez list.
Czy krotka może przechowywać różne typy danych?
Tak. Podobnie jak lista, krotka może zawierać elementy różnych typów, w tym teksty, liczby, a nawet zagnieżdżone listy. Ograniczeniem jest tylko to, że po utworzeniu jej zawartości nie da się już zmienić.
Jak pobierać wartości z krotki?
Zasady są takie same jak przy listach - stosujesz te same konstrukcje do pobierania elementów, wycinków i iterowania. Działa też sprawdzanie długości funkcją len oraz sprawdzanie, czy dany element znajduje się w krotce.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...