Когда вы хотите преобразовать списки (массивы) и кортежи друг в друга в Python, используйте list() и tuple().
Если в качестве аргументов указаны итерируемые объекты, такие как типы set, а также списки и кортежи, возвращаются новые объекты типов list и tuple.
- class list([iterable]) — Built-in Functions — Python 3.10.2 Documentation
- class tuple([iterable]) — Built-in Functions — Python 3.10.2 Documentation
Ниже приведены примеры переменных типа list, tuple и 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'>
С Python 3 функция range() возвращает объект типа range.
Обратите внимание, что хотя термин «преобразование» используется для удобства, на самом деле создается новый объект, а исходный объект остается нетронутым.
Создать список: list()
Если в качестве аргумента list() указан итерируемый объект, например, кортеж, то формируется список с этим элементом.
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'>
Генерировать кортежи: tuple()
Если в качестве аргумента tuple() указан итерируемый объект, например, список, генерируется кортеж с этим элементом.
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'>
Добавление или изменение элементов кортежей
Кортежи неизменяемы (не обновляемы), поэтому элементы не могут быть изменены или удалены. Однако кортеж с измененными или удаленными элементами можно получить, используя list() для создания списка, изменяя или удаляя элементы, а затем снова используя tuple().