据了解,元组的解包只能发生在元组/列表之间 所以
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 不是一个元组,因此我们不能解包吗?
最佳答案
问题是参数列表的括号总是包含一个元组。 它们是您不能省略的括号。因此它们不会与运算符优先级括号混淆
顺便说一句,有趣的事实: 写(注意x后面的逗号)
*x, = (1,2,3,4,5)
然后它就可以工作了,就像您需要在括号中添加逗号以使其成为元组一样。 就像 (1) 不是元组,但 (1,) 是
关于python - 关于 Python 元组解包的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62008221/