<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Datové struktury
V tomto tutoriálu jsou představeny další datové struktury (kolekce) a způsob práce s nimi.
Tuple
Objekt tuple je podobný jako list. Největší rozdíl je, že tuple není možné měnit. Jelikož Tuple nemá tolik operací jako list, tak práce s ním je rychlejší. Příklad vytvoření objektu tuple následuje.
Step1:  Poznámky k objektu tuple
Step2:  Z indexování pomocí klíče vyplývá následující
Step3:  Převody mezi datovýma strukturama
Převod mezi objekty list a tuple je ukázáno na následujících příkladech.
Step4:  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á.
Step5:  List comprehensions a generátory
List comprehensions a generátory jsou nástroje pro usnadnějí práce při vytváření listů nebo iterování.
List comprehensions
Tato funkce je jednořádková náhrada za for smyčku. Následuje příklad.
Step6:  Poznámka
<ASSISTANT_TASK:>
Python Code:
a = (1, 2, 3, "a") # vytvori tuple
print(a)
type(a)
Explanation: Datové struktury
V tomto tutoriálu jsou představeny další datové struktury (kolekce) a způsob práce s nimi.
Tuple
Objekt tuple je podobný jako list. Největší rozdíl je, že tuple není možné měnit. Jelikož Tuple nemá tolik operací jako list, tak práce s ním je rychlejší. Příklad vytvoření objektu tuple následuje.
End of explanation
a = {"name":"John Doe", "age":"30"}
print(a)
print(type(a))
Explanation: Poznámky k objektu tuple:
* tuple je pro práci rychlejší než list
* objekty v tuple jsou nezměnitelné (není možné měnit a přidívat objekty do tuple)
* je možné získat objekty z tuple pomocí indexování a porcování
* je možné používat podobné operace jako pro listy (spojení dvou objektů tuple, opakování)
* stejně jako u objektu list, pořadí objektů v tuple je dáno
Slovník
Slovník je neseřazený kontejner na páry klíč/hodnota. Klíč zde nahrazuje index. Proto ve slovníku není pořadí (narozdíl od objektů list a tuple). Příklad následuje.
End of explanation
a["name"] = "Borg" # ve vytvorenem slovniku prepise hodnotu u klice name
print(a)
a["location"] = "space" # ve vytvorenem slovniku vytvori novy par klic/hodnota
print(a)
Explanation: Z indexování pomocí klíče vyplývá následující:
* pokud zapíšete hodnotu ke klíči, který už existuje, hodnota je přepsána
* pokud zapíšete hodnotu ke klíči, který neexistuje, je vytvořen tento nový pár klíč/hodnota
See examples
End of explanation
a = ["a", "b", "c", "d", "e"] # ukazkovy list
a = tuple(a) # prevod na tuple
a = list(a) # zpet na list
Explanation: Převody mezi datovýma strukturama
Převod mezi objekty list a tuple je ukázáno na následujících příkladech.
End of explanation
a = [["a", 1], ["b", 2], ["c", 1]]
dict(a)
Explanation: 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á.
End of explanation
x = (2, 5, 3, 5, 1, 3)
a = [2 * item for item in x] # list comprehension
print(a)
Explanation: List comprehensions a generátory
List comprehensions a generátory jsou nástroje pro usnadnějí práce při vytváření listů nebo iterování.
List comprehensions
Tato funkce je jednořádková náhrada za for smyčku. Následuje příklad.
End of explanation
x = (2, 5, 3, 5, 1, 3)
a = (2 * item for item in x) # generator
print(a)
for item in a:
    print(item) # vytiskne hodnotu z generatoru
Explanation: Poznámka: podobné komprese je možné dělat i se slovníky.
Generátory
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.
End of explanation
<END_TASK>