Python:扁平化包含来自函数的另一个元组的元组的最简单方法
Posted
技术标签:
【中文标题】Python:扁平化包含来自函数的另一个元组的元组的最简单方法【英文标题】:Python: easiest way to flatten a tupple containing another tupple from a function 【发布时间】:2016-03-17 18:07:06 【问题描述】:我的代码是这样的:
def f1():
return 2, 3
def f2():
return 1, f1()
我能做到:
a, (b, c) = f2()
我想做:
a, b, c = f2()
我能找到的所有解决方案都需要使用大量疯狂的括号/括号,或者创建一个标识函数来使用*
运算符。我只想修改 f2()。
还有更简单的吗?
【问题讨论】:
【参考方案1】:不要使用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()
可以返回一个包含任意数量元素的元组。
【讨论】:
或者,x, y = f1(); return 1, x, y
。
@SvenMarnach:非常正确。我已经添加了。以上是关于Python:扁平化包含来自函数的另一个元组的元组的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章