Další struktury
Množiny
Datový typ setmnožina umožňuje uložit více prvků do jedné struktury, kde je každý prvek uložen pouze jednou. Do seznamu přidáváme prvky metodou append(). U množin k tomu slouží metoda add(). Další hlavní rozdíl je ten, že pořadí prvků je u seznamů a n-tic zaručeno (stejně jako pořadí znaků v řetězci), ale u množin pevné pořadí není. Není možné množinu ani indexovat.
names = set()
names.add('Martin')
names.add('Jana')
names.add('Petr')
names.add('Simona')
print(len(names), names)
names.add('Martin')
print(len(names), names)
Vzájemné převádění datových typů
Už umíme převádět řetězce na celá čísla pomocí funkce int() nebo na desetinná čísla pomocí float(). Opačně můžeme číslo převést na řetězec pomocí funkce str(). Podobně to funguje u datových typů list, tuple a set.
t = 1, 2, 3, 2, 3, 2, 3, 1, 2
s = set(t)
print(s)
Cvičení
N-tice
Kromě seznamů si povíme o dalších možnostech, jak uložit více hodnot naráz. Datový typ velmi podobný seznamu je tuplen-tice. Představme si ji jako dvojici, trojici, čtveřici apod. nějakých hodnot. Hlavní rozdíly oproti seznamu jsou ty, že není možné měnit prvek na určitém indexu n-tice a není možné žádný prvek přidávat nebo mazat.
N-tici vytvoříme prostou posloupností prvků oddělených čárkou bez hranatých závorek.
cookies_count = [1, 2, 4, 1, 6, 0, 1]
print(type(cookies_count))
cookies_count = 1, 2, 4, 1, 6, 0, 1
print(type(cookies_count))
<class 'list'>
<class 'tuple'>
Určitě se ptáte, k čemu jsou n-tice dobré, když neumí ani to, co seznamy a nic navíc? Hlavní důvod je určitý výkonnostní rozdíl oproti seznamům a jejich integrace do jazyka Python, která nabízí výbornou čitelnost kódu. V následující ukázce si rozbalíme seznam nebo n-tici do tří samostatných proměnných:
item = "Čajová konvička s hrnky", 899, True
title, price, in_stock = item
print(title)
print(price)
print(in_stock)
Čajová konvička s hrnky
899
True
Nemusíte se existencí n-tic příliš trápit. Hlavní důvod, proč si je zmiňujeme, je vědět, že vůbec existují. Pokud ve vašem kódu někdy budete chtít vytvořit list, ale zapomenete hranaté závorky, Python vám vytvoří n-tici a na problém vás upozorní až při pokusu o zápis do této datové struktury.