blog.furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

Tupla inaczej krotka w Pythonie

To jest „przedruk” mojej wypowiedzi na polskim forum Pythona http://pl.python.org/forum/index.php?topic=4366.msg18707#msg18707

--

Pytanie:

    co oznacza '(0,0)' w nawiasach wewnetrznych?

To jest typ danych zwany "krotka" lub z angielskiego "tupla". Typ ten po zdefiniowaniu jest niezmienny (ang. immutable). Można z niego pobrać dane ale nie można zmienić jego zawartości - zmienić wartości na inną, usunąć jakiś element lub dodać kolejny. Stosuje się ją tam gdzie chce się mieć pewność, że dana nie zostanie zmodyfikowana.

# tupla/krotka

punkt = (0,0)

x  = punkt[0]
y  = punkt[1]

punkt[0] = 10 # error
punkt.append(3) # error
del punkt[0] # error

# lista

punkt = [0,0]

x  = punkt[0]
y  = punkt[1]

punkt[0] = 10 # OK
punkt.append(3) # OK
del punkt[0] # OK

Naturalną rzeczą jest aby punkt (w 2D) był parą licz x,y przekazywaną do funkcji jako jedna wartość. Podobnie bywa z innymi danymi - wymiary = (szerokość, wysokosc), kolor = (r,g,b), polozenie_geograficzne = (szerokosc, dlugosc).

Podobno tupla jest szybsza od listy - o ile trzeba ją tylko stworzyć i przekazać dalej a nie zmienniać jej zawartości.

Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury