在 Python 中,如果想要将一个列表转换为一个元组,常用的有以下 2 种方式。
- 使用 tuple() 函数。
- 使用元组生成器。
使用 tuple() 函数
tuple() 是 Python 的一个内置函数,它接收一个可迭代对象作为参数,然后返回一个元组。换句话来说,tuple() 函数可以将 “其他可迭代对象(如列表)” 转换为 “元组”。
语法:
tuple(iterable)说明:
tuple() 接收单个参数。
iterable(可选):是一个可迭代对象。如果 iterable 省略,则返回一个空元组;如果 iterable 不省略,则创建一个由可迭代项组成的元组。
示例 1:tuple() 将列表转为元组
lst = ['绿', '叶', '网']
result = tuple(lst)
print(result)运行结果如下。
('绿', '叶', '网')使用元组生成器
在 Python 中,可变类型(如列表、字典、集合等)可以使用推导式的方式来生成,而不可变类型(如元组、字符串等)是无法使用推导式语法的。
但是对于元组而言,可以使用类似的方式来生成生成器,这种方式称为 “生成器推导式”,所生成的生成器称为 “元组生成器”。
示例 2:元组生成器将列表转为元组
nums = [1, 2, 3, 4, 5]
temp = (n * 2 for n in nums)
result = tuple(temp)
print(temp)
print(result)运行结果如下。
<generator object <genexpr> at 0x0000026D81DFDF20>
(2, 4, 6, 8, 10)分析:
temp = (n * 2 for n in nums) 使用了元组生成器的语法,此时得到的 temp 是一个生成器。既然是生成器,就可以使用 for 循环来遍历,或者使用 next() 函数来不断获取下一个值。
如果想要一个生成器转换为元组,我们还需借助 tuple() 函数来实现。其中,方式 1 完全可以简写为方式 2。
# 方式 1
temp = (n * 2 for n in nums)
result = tuple(temp)
# 方式 2
result= tuple(n * 2 for n in nums)