python - 关于 Python 元组解包的说明
问题描述
据了解,元组的解包只能发生在元组/列表之间,所以
x,*y = (1,2,3,4)
已验证。但是,如果我们尝试对单个变量进行解包
*x = (1,2,3,4,5)
我们收到一个错误,因为 x 不是列表/元组,因此无法进行解包。如果是这种情况,那么我们如何使用 *args 在函数中有多个参数
def max(* args):
for x in args:
print(x)
所以在这里,如果我调用 max(1,2,3,4)。我们不应该得到一个错误因为 *args is not a tuple 因此我们不能解包吗?
解决方案
问题是参数列表的括号总是包含一个元组。它们是您不能省略的括号。因此它们不会与运算符优先级括号混淆
顺便说一句,有趣的事实:写(注意 x 之后的逗号)
*x, = (1,2,3,4,5)
然后它就可以工作了,就像您需要在括号中添加一个逗号以使其成为一个元组一样。像 (1) 不是元组,但 (1,) 是
推荐阅读
- android - 如何避免recyclerview中每个小部件的requestModelBuild
- android - 如何在android中将菜单设置为应在片段中显示的工具栏
- python - 在文本中查找完全匹配
- javascript - 在 Java 中修改 Netlogo 扩展 API
- git - git 在 Mercurial 中显示等效项
- vhdl - 有没有办法在 vhdl 的 case 语句中创建循环?
- java - 如果 compareAndSet 失败,下面的代码是否仍然执行?
- javascript - 字符串变量作为类对象传递给函数
- r-exams - 如何总结和打印所有练习的分数?
- logging - 我计划在生产环境中使用 Serilog,那么通过 HTTPs 记录所有级别(信息、警告、错误……)是否存在任何性能问题?