In [23]:
a = (1, 2, 3, "a") # vytvori tuple
print(a)
type(a)
Out[23]:
Poznámky k objektu tuple:
In [24]:
a = {"name":"John Doe", "age":"30"}
print(a)
print(type(a))
Z indexování pomocí klíče vyplývá následující:
See examples
In [25]:
a["name"] = "Borg" # ve vytvorenem slovniku prepise hodnotu u klice name
print(a)
In [26]:
a["location"] = "space" # ve vytvorenem slovniku vytvori novy par klic/hodnota
print(a)
In [27]:
a = ["a", "b", "c", "d", "e"] # ukazkovy list
a = tuple(a) # prevod na tuple
a = list(a) # zpet na list
Převod mezi slovníkem a listem (nebo tuple) není tak jednoduchý. Jednoduchý příklad následuje. Objekt obsahuje vnořené objekty, které mají přesně dvě položky. Kdyby obsahovaly jiný počet položek, konverze by nebyla možná.
In [28]:
a = [["a", 1], ["b", 2], ["c", 1]]
dict(a)
Out[28]:
In [29]:
x = (2, 5, 3, 5, 1, 3)
a = [2 * item for item in x] # list comprehension
print(a)
Poznámka: podobné komprese je možné dělat i se slovníky.
Generátory jsou podobné jako list comprehension. Rozdíl je v tom, že generátor nevytvoří objekt obsahující položky, ale pouze se chová jako takový objekt. Jinými slovy, chová se jako objekt přes který je možný iterovat, aniž by se celý vytvořil najednou v paměti. Z tohoto důvodu je možné generátor použít pouze jednou a pouze v jednom směru (není možné indexovat). Generátory jsou výhodné, pokud chcete ušetřit místo v paměti.
In [30]:
x = (2, 5, 3, 5, 1, 3)
a = (2 * item for item in x) # generator
print(a)
In [31]:
for item in a:
print(item) # vytiskne hodnotu z generatoru