如何在python中将列表和单个元素组合成一个元组?

我在 python3 中有一些变量:


a = 1

b = [2,3,4]

c = 5

我想得到一个来自上述变量的元组,比如:(1,2,3,4,5)


在 python3 中最简单的方法是什么?


慕田峪7331174
浏览 255回答 3
3回答

UYOU

在 Python 中创建一个元组就像将你需要的东西放在一个括号中的元组中一样简单:my_tuple = (1, 2, 3)a = 1b = 2c = 3another_tuple = (a, b, c)  # also works with variables, or anything else with a value如果你想要在元组中的东西是可以解包的其他东西,比如列表或元组本身,你可以使用解包运算符*将它解包到新的元组中:a = 1b = [2,3,4]c = 5my_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 问题的例子。

潇湘沐

只需创建一个新元组,如下所示。newTuple=(a, *b, c)注意: *b 将列表 b 解包为变量,并将每个变量添加到newTuple的索引中

慕容708150

其中一种方式如下图所示from functools import reduceimport operator# create a bunch of lists, reduce them to one list and finally convert to tupleresult = tuple(reduce(operator.add, ([a], b, [c])))print(result)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python