Ha a Pythonban listákat (tömböket) és tuple-okat szeretnénk egymásba konvertálni, használjuk a list() és tuple() parancsokat.
Ha argumentumként iterálható objektumokat, például halmaz típusokat, valamint listákat és tuple-okat adunk meg, akkor list és tuple típusú új objektumokat kapunk vissza.
- class list([iterable]) — Built-in Functions — Python 3.10.2 Documentation
- class tuple([iterable]) — Built-in Functions — Python 3.10.2 Documentation
A következő lista, tuple és range típusú változók példák.
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'>
A range() a Python 3 óta egy range típusú objektumot ad vissza.
Vegye figyelembe, hogy bár a “konverzió” kifejezést az egyszerűség kedvéért használjuk, valójában az új objektum jön létre, az eredeti objektum pedig érintetlen marad.
Lista létrehozása: list()
Ha egy iterálható objektumot, például egy tuple-t adunk meg a list() argumentumaként, akkor egy listát generálunk az adott elemmel.
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'>
Tuplik generálása: tuple()
Ha egy iterálható objektumot, például egy listát adunk meg a tuple() argumentumaként, akkor egy tuple generálódik az adott elemmel.
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'>
Tuplik elemeinek hozzáadása vagy módosítása
A tuplik megváltoztathatatlanok (nem frissíthetők), így az elemek nem módosíthatók vagy törölhetők. Azonban egy olyan tuple-t, amelynek elemei megváltoztak vagy törlődtek, úgy kaphatunk, hogy a list() segítségével listát készítünk, megváltoztatjuk vagy töröljük az elemeket, majd újra a tuple() funkciót használjuk.