为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕田峪7331174 2022-05-24 13:07:24
我在 python3 中有一些变量:a = 1b = [2,3,4]c = 5我想得到一个来自上述变量的元组,比如:(1,2,3,4,5)在 python3 中最简单的方法是什么?
查看完整描述

3 回答

?
UYOU

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 问题的例子。


查看完整回答
反对 回复 2022-05-24
?
潇湘沐

TA贡献1816条经验 获得超6个赞

只需创建一个新元组,如下所示。

newTuple=(a, *b, c)

注意: *b 将列表 b 解包变量,并将每个变量添加到newTuple的索引中


查看完整回答
反对 回复 2022-05-24
?
慕容708150

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)


查看完整回答
反对 回复 2022-05-24
  • 3 回答
  • 0 关注
  • 254 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号