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:扁平化包含来自函数的另一个元组的元组的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

Python中的元组(Tuple)

元组的元组是python中内置的一种数据结构

Python:元组列表:比较所有元组并检索元组的元素不等于任何其他元组的元组

Python的元组列表截取

Python:创建大小为 n^2 的元组的时间和空间复杂度

为后来成为特定类型的元组的空元组设置正确的类型