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

标签 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():
    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/

相关文章:

python - 尽可能远离陆地 - DP 解决方案

python - django 中未定义 DateTimeField 错误

python - 如何在 Python 中就地解压列表或元组?

Python:相同元组元素的索引也相同?

php - unpack(C*,data) Eats Memory [php 在 unpack 函数上耗尽内存]

ruby - 在ruby中将字符串撤消为二进制

python - 如何使用 Python 将多部分 PDF 请求发送到 OneNote

python - 带有 selectfield 的 flask 链接下拉列表不是有效的选择

python - 动态检查mypy中的元组长度

ruby - 如何将 4 个字节的二进制数据解包为 3 个字节和 1 个字节的值?