python - 关于 Python 元组解包的说明

标签 python python-3.x arguments iterable-unpacking

据了解,元组的解包只能发生在元组/列表之间 所以

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/

相关文章:

python - 函数根据其输入返回可迭代或不可迭代是 Pythonic 吗?

python - 列表中每个元组的第一个元素与字母字符之间的高效映射

python - Python行检测

Python pandas 有效地删除 UserWarning 和循环

python - 使用 python reshape xml?

python3 类型错误 : 'bytes' object is not callable

javascript - 将参数传递给函数,参数不会变成变量

python - Python 中可变参数列表的默认值

python - 如何解析 python (spyder) 中的参数?

python - 将调色板颜色的 16x16 真彩色图像转换为实际的调色板文件