3 回答

TA贡献1878条经验 获得超4个赞
在 Python 中创建一个元组就像将你需要的东西放在一个括号中的元组中一样简单:
my_tuple = (1, 2, 3)
a = 1
b = 2
c = 3
another_tuple = (a, b, c) # also works with variables, or anything else with a value
如果你想要在元组中的东西是可以解包的其他东西,比如列表或元组本身,你可以使用解包运算符*将它解包到新的元组中:
a = 1
b = [2,3,4]
c = 5
my_tuple = (a, *b, c)
不是您的问题,但请注意,您也可以在不使用*运算符的情况下从元组中获取内容,因为它隐含在赋值语句中:
x, _, z = my_tuple # continued from before
在此示例中,a( 1) 中的内容现在也在其中,x而 中的内容c也在 中z。元组中b和第二个位置的内容被丢弃(这就是_这里下划线的意思,“不在乎”。)
如果您明确需要解包并且正在构建一些新变量,或者需要单独元组的元素,它们也可以用作元组,则可以使用解包运算符。例如,调用函数时:
a_tuple = ('Hi there', 'John')
def greeting(phrase='Hello', name='world'):
print(f'{phrase}, {name}!')
greeting(*a_tuple)
在这个例子中,调用greetingasgreeting(a_tuple)会给你带来非常讨厌的结果('Hi there', 'John'), world!,显然不是你想要的,但你仍然可以使用带有 unpack 操作符的元组。
另一个明显的例子是解决 OP 问题的例子。

TA贡献1831条经验 获得超4个赞
其中一种方式如下图所示
from functools import reduce
import operator
# create a bunch of lists, reduce them to one list and finally convert to tuple
result = tuple(reduce(operator.add, ([a], b, [c])))
print(result)
添加回答
举报