首页 > 解决方案 > 在python中灵活解包返回的元组

问题描述

在 Python 中,我可以从这样的函数返回多个值:

def myfunc():
    return 1, 2, 3

当我调用这个函数时,我需要解包这样的值:

a, b, c = myfunc()
# a = 1, b = 2, c = 3

如果我试试这个,我会得到整个元组:

a = myfunc()
# a = (1, 2, 3)

无论如何我可以在a = 1不改变函数调用方式的情况下制作上面的代码吗?我意识到我可以做类似的事情a, _, _ = myfunc(),但我不想改变调用函数的方式。我只能更改函数定义。

换句话说,我想要这样的东西:

a, b, c = myfunc()
# a = 1, b = 2, c = 3

a, b = myfunc()
# a = 1, b = 2

a = myfunc()
# a = 1

谢谢你的帮助!

标签: pythonfunctionreturntuples

解决方案


您可以使用星号表示法:

a, *_ = myfunc()

这将 1 分配给a“匿名”变量,元组的其余部分_


推荐阅读