Ustawka z wężem #5 | Krotki
📂 Python
Krotka (tuple) to lista, która poszła na siłownię i teraz jest nie do ruszenia. Możesz ją stworzyć, możesz po niej czytać, ale jak spróbujesz coś zmienić – Python ci przypierdoli TypeError w ryj.
Tworzenie krotki – bo nie zawsze trzeba kwadratowych nawiasów
wspolrzedne = (52.2297, 21.0122) # klasyka
dni = "Pon", "Wt", "Sr", "Czw", "Pt", "Sob", "Nd" # bez nawiasów też działa!
pusta = () # pusta krotka
pojedyncza = ("tylko ja",) # UWAGA NA PRZECINEK, bo inaczej to nie krotka!
Indeksy – dokładnie jak w liście, tylko nie pierdol przy zmianie
dni[0] # → "Pon"
dni[-1] # → "Nd" (ostatni)
dni[2:5] # → ("Sr", "Czw", "Pt") # wycinki działają!
dni[::-1] # → od tyłu, piękne jak cholera
Jak dasz zły indeks → IndexError.
Jak spróbujesz przypisać dni[0] = "Nd" → TypeError. I dobrze, bo tak ma być.
Co możesz robić z krotką (a czego nie możesz)
| Można | Nie można (i chuj) |
|---|---|
len(krotka) – długość |
append() |
krotka.count(x) – ile razy x |
pop() |
krotka.index(x) – pozycja x |
remove() |
x in krotka – sprawdzenie |
sort(), reverse() |
krotka + krotka2 – konkatenacja |
krotka[0] = coś ← zabronione |
krotka * 3 – powtórzenie |
wszystko co mutuje |
Krotki wielopoziomowe – bo można w krotce mieć krotkę
matrix = ((1, 2, 3),
(4, 5, 6),
(7, 8, 9))
print(matrix[1][2]) # → 6
Pętla po krotce – trzy najseksowniejsze sposoby
# 1. Prosto w pysk
for rzecz in dni:
print(rzecz)
# 2. Z indeksem (jak musisz)
for i in range(len(dni)):
print(i, dni[i])
# 3. Najlepszy – enumerate, bo jesteśmy w Pythonie
for nr, dzien in enumerate(dni):
print(nr, dzien)
Po co w ogóle krotki, skoro mamy listy?
- Szybsze niż listy (mniej pamięci, mniej roboty)
- Nie da się ich przypadkowo zmodyfikować – bezpieczeństwo
- Mogą być kluczami w słowniku (listy nie mogą!)
- Zwracane przez wiele funkcji (np.
divmod(10,3)→ (3, 1)) - Idealny na rekordy:
osoba = ("Jan", "Kowalski", 1990)
Rozpakowywanie – najpiękniejsza rzecz na świecie
imie, nazwisko, rok = osoba
print(imie) # → Jan
a, b = (10, 20)
a, b = b, a # swap w jednej linii, zero zmiennych tymczasowych!
# gwiazdka jak masz za dużo
pierwszy, *srodek, ostatni = (1,2,3,4,5,6)
print(srodek) # → [2,3,4,5]
Podsumowanie – zapamiętaj albo spierdalaj
- Krotka =
(...)albo po prostu1, 2, 3 - Nie zmienisz jej nigdy – i to jest zajebiste
- Jednoelementowa → przecinek obowiązkowy:
("sam",) - Wycinki, pętle, len(), count(), index() – wszystko działa jak w liście
- Używaj kiedy dane mają być stałe albo chcesz klucz do dict
- Rozpakowywanie krotek to czysta poezja
Krotka = lista na sterydach niezmienności. Kochaj ją albo giń.