Python:展平包含函数中另一个元组的元组的最简单方法

Python:展平包含函数中另一个元组的元组的最简单方法,python,tuples,unpack,Python,Tuples,Unpack,我的代码如下: 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()

我的代码如下:

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())
您也可以这样做:

def f2():
    x,y = f1()
    return 1, x, y
def f2():
    return (lambda *args: args)(1, *f1())

这有点长,但它比x,y=f1解决方案有优势,因为这样f1可以返回包含任意数量元素的元组。

或者,x,y=f1;返回1,x,y。@SvenMarnach:非常正确。我已经补充了这一点。