Krotki

https://docs.python.org/3/library/stdtypes.html#tuples

WPROWADZENIE

Krotki (tuples) to uporządkowane kolekcje dowolnych obiektów. Są heterogeniczne i mogą być dowolnie zagnieżdżane. Dostęp do obiektów możliwy jest za pomocą offsetu.

Krotki są niezmiennymi sekwencjami, jak łańcuchy. Nie można ich modyfikować w miejscu i mają ustalony rozmiar. Podobnie jak listy, krotki najlepiej traktować jako tablice odwołań obiektowych.

Krotki są stosowane zamiast list tam, gdzie zależy nam na niezmienności.

+----------------------+-------------------------------------------+
| Operacja             | Znaczenie                                 |
+----------------------+-------------------------------------------+
| T = () ; T = tuple() | krotka pusta                              |
| T = (0,)             | krotka jednopozycyjna (nawiasy zalecane)  |                  |
| T = (1, 3, 5, 7)     | krotka czteropozycyjna (nawiasy zbędne)   |
| T = tuple(sequence)  | tworzenie krotki z sekwencji              |
| len(T)               | rozmiar (długość)                         |
| T1 + T2              | łączenie                                  |
| T * n, n * T         | powtarzanie                               |
| T[i]                 | indeks                                    |
| T[i:j]               | wycinek (nowa krotka)                     |
| T[i:j:k]             | wycinek (nowa krotka)                     |
| for item in T: pass  | iteracja                                  |
| item in T            | zawieranie (bool)                         |
| item not in T        |                                           |
| del T                | usuwanie krotki                           |
| (x, y) = (a, b)      | x = a ; y = b   # podstawianie            |
+----------------------+-------------------------------------------+

# Krotka jednoelementowa.
T = ('a',)                    # bez przecinka będzie string
# Można też T = tuple('a'), bo string jest sekwencją.
# Dla liczb można przekonwertować listę T = tuple([2]).

T = ('a', 'b', 'c')
# T = ('a', 'b', 'c',)   # przecinek na końcu jest dozwolony
T[1]
len(T)   # 3

# Można tworzyć zmodyfikowaną (nową) krotkę.
T = ('A',) + T[1:]

L = [1, 2, 3, 4]
front, L = L[0], L[1:]        # odcięcie początku
# Konwersja listy do krotki.
T = tuple(L)

# Krotki i listy mogą występować w nietypowym podstawieniu.
(x, y) = (12, 34)             # podstawiamy za x i y
a, b = b, a                   # zamiana w Pythonie
dane = (43, 54)
(x2, y2) = dane
(NIEDZIELA, PONIEDZIALEK, WTOREK, SRODA, CZWARTEK, PIATEK, SOBOTA) = range(7)

METODY KROTEK


dir(tuple)     # spis metod
T = (1, 2, 3, 5, 7)
T.index(5)     # 3, jaki indeks ma liczba 5
T.count(5)     # 1, liczba 5 pojawia się raz w krotce

>>> T = (5, 7)
>>> T[1] = 9
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> T.append(9)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>>