Python:将包含来自函数的另一个元组的元组展平的最简单方法
Python: easiest way to flatten a tupple containing another tupple from a function
我的代码是这样的:
def f1():
return 2, 3
def f2():
return 1, f1()
我能做到:
a, (b, c) = f2()
我想做:
a, b, c = f2()
我能找到的所有解决方案都需要使用大量疯狂的 parenthesis/brackets,或者创建一个恒等函数来使用 *
运算符。我只想修改 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()
可以 return 具有任意数量元素的元组。
我的代码是这样的:
def f1():
return 2, 3
def f2():
return 1, f1()
我能做到:
a, (b, c) = f2()
我想做:
a, b, c = f2()
我能找到的所有解决方案都需要使用大量疯狂的 parenthesis/brackets,或者创建一个恒等函数来使用 *
运算符。我只想修改 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()
可以 return 具有任意数量元素的元组。