Gdy chcesz konwertować listy (tablice) i krotki na siebie w Pythonie, użyj funkcji list() i tuple().
Jeśli jako argumenty zostaną podane obiekty iterowalne, takie jak typy set oraz listy i krotki, zwracane są nowe obiekty typu lista i krotka.
- class list([iterable]) — Built-in Functions — Python 3.10.2 Documentation
- class tuple([iterable]) — Built-in Functions — Python 3.10.2 Documentation
Poniżej przedstawiono przykłady zmiennych typu lista, tuple i 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'>
Od czasu Pythona 3 funkcja range() zwraca obiekt typu range.
Należy zauważyć, że chociaż termin „konwersja” jest używany dla wygody, w rzeczywistości tworzony jest nowy obiekt, a oryginalny obiekt pozostaje nienaruszony.
Wygeneruj listę: list()
Gdy jako argument funkcji list() podany jest obiekt iterowalny, taki jak tuple, generowana jest lista zawierająca ten element.
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'>
Generowanie krotek: tuple()
Gdy jako argument funkcji tuple() podany jest obiekt iterowalny, taki jak lista, generowana jest krotka z tym elementem.
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'>
Dodawanie lub zmiana elementów krotek
Tuple są niezmienne (nieaktualizowalne), więc ich elementów nie można zmieniać ani usuwać. Jednak tuple z elementami zmienionymi lub usuniętymi można uzyskać przez użycie funkcji list() do utworzenia listy, zmianę lub usunięcie elementów, a następnie ponowne użycie funkcji tuple().