python - 在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
谢谢你的帮助!
解决方案
您可以使用星号表示法:
a, *_ = myfunc()
这将 1 分配给a
“匿名”变量,元组的其余部分_
。
推荐阅读
- distance - 使用空间索引提升点到多边形的距离查询
- database - 数据库设计协助
- php - 我想删除路由登录而不干扰我的登录,Laravel 7
- xml - XML 序列化 - 原始文本(转义和字符)
- sql - STRING_AGG 具有不同的无子查询
- macos - 如何从 mac 上的 node.js 脚本启动电子应用程序?
- swift - navigationItem 显示很高 swift 5
- asp.net-core - 如何在 IIS 上使用 ASP.NET Core 3.1 API 部署 Angular SPA?
- dom - 我可以从 Geotools 中的 DOM 节点解析 GML Surface 吗?
- visual-studio - 未知解决方案项目类型 Visual Studio for MAC