Võrdlus järjendiga

Ennik erineb järjendist (list) peamiselt selle poolest, et see on muutumatu (immutable), mis tähendab, et ennikule ei saa lisada, üle kirjutada või eemaldada elemente. Seetõttu puuduvad paljud meetodid, mis on olemas järjendil (näiteks elementide lisamise meetodid append ja extend või elementide eemaldamise meetodid remove ja pop).

Tip

Ennikud on pisut kiiremad kui järjendid ning nende kasutamine aitab muuta koodi selgemaks ja arusaadavamaks tagades selle, et andmeid ei saa muuta. Kui kasutad konstantseid väärtuseid, siis eelista võimalusel ennikut järjendile.

aList = [4, 2]
aList[0] = 1
print(aList)  # -> [1, 2]

aTuple = (4, 2)
aTuple[0] = 1  # -> TypeError: 'tuple' object does not support item assignment

Tip

Ennikut saab kasutada sõnastiku (dictionary) võtmena (key), kuid järjendit ei saa, sest järjend on muutuv (mutable).

dict1 = {(2, 3): "abc"}  # Tuple can be used as a dictionary key
dict2 = {[2, 3]: "abc"}  # -> TypeError: unhashable type: 'list'

Nii loendit kui ka ennikut saab määrata vastavalt omanimelise funktsiooniga.

numbers = tuple(range(10))
text = tuple('python')
print(numbers)                        # -> (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
print(text)                           # -> ('p', 'y', 't', 'h', 'o', 'n')