当你想在 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()来获得。