我的代码是这样的:
def f1():
return 2, 3
def f2():
return 1, f1()
我能做到:
a, (b, c) = f2()
我想做的事:
a, b, c = f2()
我能找到的所有解决方案都需要使用大量疯狂的圆括号/方括号,或者创建一个恒等函数来使用 *
运算符。我只想修改 f2()。
有没有更简单的?
最佳答案
不使用 1, f2()
,而是使用元组连接:
def f2():
return (1,) + f1()
如评论中所述,您也可以这样做:
def f2():
x,y = f1()
return 1, x, y
你也可以这样做:
def f2():
return (lambda *args: args)(1, *f1())
这有点长,但它比 x,y = f1()
解决方案有优势,因为这样 f1()
可以返回一个元组元素数量。
关于Python:从函数中压平包含另一个元组的元组的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36068444/