Когато искате да преобразувате списъци (масиви) и кортежи един към друг в Python, използвайте list() и tuple().
Ако като аргументи са зададени итерабилни обекти, като например типове множества, списъци и кортежи, се връщат нови обекти от типове списък и кортеж.
- class list([iterable]) — Built-in Functions — Python 3.10.2 Documentation
- class tuple([iterable]) — Built-in Functions — Python 3.10.2 Documentation
Следните променливи от типове списък, кортеж и обхват са примери.
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().