SAMOUCZEK JĘZYKA PYTHON ROZDZIAŁY   
Rozdział 4: Struktury danych.

1: Więcej o listach - 2: Używanie listy jako stosu - 3: Używanie listy jako kolejki
4: Mechanizmy programowania funkcjonalnego - 5: Rozszerzenie składni listy - 6: Instrukcje del
7: Listy niemutowalne i sekwencyjne - 8: Słownik - 9: Jeszcze trochę o warunkach
10: Porównanie sekwencji i innych typów

Lekcja 7. Listy niemutowalne i sekwencje.


Listy i napisy mają wiele wspólnych właściwości, np. indeksacja, operacje wycinania. Są to dwa przykłady typów sekwencyjnych. Ze względu na to, że Python jest językiem rozszerzalnym, można dodawać inne typy danych. Istnieje jeszcze jeden typ danych sekwencyjnych: krotka

Taka lista składa się z pewnej liczby elementów oddzielonych przecinkami, np.:


>>> t = 12345, 54321, 'hello!'
>>> t[0]
12345
>>> t
(12345, 54321, 'hello!')
>>> # Krotki można zagnieżdżać:
... u = t, (1, 2, 3, 4, 5)
>>> u
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))

Jak widać, krotka pokazywana jest zawsze na wyjściu w okrągłych nawiasach, aby jeśli są zagnieżdżone, były interpretowane poprawnie. Mogą być wprowadzane z nawiasami lub bez nich, aczkolwiek nawiasy są niekiedy potrzebne (np. jeżeli krotka jest częścią jakiegoś długiego wyrażenia).

Krotki mają dużo zastosowań, np. jako para współrzędnych (x,y), rekord pracowników z bazy danych itd. Nie jest możliwe przypisanie poszczególnym elementom takiej listy wartości, ale można to zasymulować poprzez wycinanie i sklejanie.

Pewien problem z takimi listami pojawia się jeżeli mają zawierać zero lub jeden element. Aby osiągnąć taki efekt trzeba użyć lekko pokręconej składni. Puste krotki tworzone są przez pustą parę nawiasów okrągłych; lista z jednym elementem poprzez wartość, po której następuje przecinek (nie wystarcza otoczyć pojedynczą wartość nawiasami okrągłymi). Brzydkie, ale efektywne. Na przykład:

 >>> pusta = ()
>>> jednoelementowa = 'hello',# <-- zauważcie
#przecinek
#na końcu!
>>> len(pusta)
0
>>> len(jednoelementowa)
1
>>> jednoelementowa
('hello',)

Instrukcja t = 12345, 54321, 'hello!' jest przykładem pakowania krotki: wartości 12345, 54321 i 'hello!'pakowane są do krotki. Operacja odwrotna jest również możliwa, np.:

 >>> x, y, z = t 

Takie coś nazywane jest, odpowiednio, krotki. Takie rozpakowywanie wymaga, aby lista zmiennych po lewej stronie miała tyle samo elementów, ile długość listy niemutowalnej. Zauważcie, że takie przypisanie jest kombinacją pakowania i rozpakowywania listy niemutowalnej!


LISTY NIEMUTOWALNE--KROTKI MOGĄ ZAWIERAĆ OBIEKTY MUTOWALNE!


Przez przypadek taką samą operację można powtórzyć dla zwykłej listy. Osiągamy to przez otoczenie listy zmiennych nawiasami kwadratowymi:

 >>> a = ['kot', 'pies', 100, 1234]
>>> [a1, a2, a3, a4] = a
Strona główna - O Pythonie - Interpreter - Samouczek - Przykłady programów - Linki