在python3中有几个变量:
a = 1
b = [2,3,4]
c = 5我想从上面的变量中得到一个元组,比如:(1,2,3,4,5)
在python3中,最简单的方法是什么?
发布于 2019-09-10 02:12:32
在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中的内容和元组的第二个位置都会被丢弃(这就是这里的下划线_的意思,“不要在意”)。
在显式需要解压缩并且正在构造一些新变量的情况下,使用unpack运算符,或者需要元组的元素单独使用,这些元素也可以作为元组使用。例如,当调用一个函数时:
a_tuple = ('Hi there', 'John')
def greeting(phrase='Hello', name='world'):
print(f'{phrase}, {name}!')
greeting(*a_tuple)在本例中,将greeting调用为greeting(a_tuple)会给出('Hi there', 'John'), world!的非常糟糕的结果,这显然不是您想要的结果,但是您仍然可以使用元组和unpack操作符。
另一个明显的例子是一个解决OP问题的例子。
发布于 2019-09-10 02:22:53
只需创建一个新的元组,如下所示。
newTuple=(a, *b, c)注释: *b将b解压缩到变量中,并将每个变量添加到newTuple的索引中
发布于 2019-09-10 02:26:36
这是最重要的丙酮溶液:
a = 1
b = [2,3,4]
c = 5
res = a,*b,c
# output: (1,2,3,4,5)注意事项:要创建新的元组,在Python3中不需要圆括号
https://stackoverflow.com/questions/57863094
复制相似问题