Pokud chcete v jazyce Python vzájemně převádět seznamy (pole) a tuply, použijte funkce list() a tuple().
Pokud jsou jako argumenty zadány iterovatelné objekty, například typy množin, seznamů a tuplů, jsou vráceny nové objekty typů seznam a tuple.
- class list([iterable]) — Built-in Functions — Python 3.10.2 Documentation
- class tuple([iterable]) — Built-in Functions — Python 3.10.2 Documentation
Příkladem jsou následující proměnné typu seznam, tuple a range.
l = [0, 1, 2]
print(l)
print(type(l))
# [0, 1, 2]
# <class 'list'>
t = ('one', 'two', 'three')
print(t)
print(type(t))
# ('one', 'two', 'three')
# <class 'tuple'>
r = range(10)
print(r)
print(type(r))
# range(0, 10)
# <class 'range'>
Funkce range() vrací objekt typu range od verze Python 3.
Všimněte si, že ačkoli je termín „konverze“ používán z pohodlnosti, ve skutečnosti je vytvořen nový objekt a původní objekt zůstává nedotčen.
Vytvořit seznam: list()
Pokud je jako argument funkce list() zadán iterovatelný objekt, například tuple, je vygenerován seznam s tímto prvkem.
tl = list(t)
print(tl)
print(type(tl))
# ['one', 'two', 'three']
# <class 'list'>
rl = list(r)
print(rl)
print(type(rl))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# <class 'list'>
Generování tuplů: tuple()
Pokud je jako argument funkce tuple() zadán iterovatelný objekt, například seznam, je vygenerován tuple s tímto prvkem.
lt = tuple(l)
print(lt)
print(type(lt))
# (0, 1, 2)
# <class 'tuple'>
rt = tuple(r)
print(rt)
print(type(rt))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# <class 'tuple'>
Přidání nebo změna prvků tuplů
Tuply jsou neměnné (nelze je aktualizovat), takže prvky nelze měnit ani mazat. Tuple se změněnými nebo odstraněnými prvky však lze získat tak, že pomocí funkce list() vytvoříte seznam, změníte nebo odstraníte prvky a poté znovu použijete funkci tuple().