【问题标题】:Python - cannot unpack non-iterable int object when declaring variablePython - 声明变量时无法解压缩不可迭代的 int 对象
【发布时间】:2020-08-15 23:48:55
【问题描述】:

尝试运行以下代码行时出现以下错误“无法解压不可迭代的 int 对象”。

numOf95Rows, numOf85Rows, numOf85Rows, numOf75Rows, numOfLess75Rows = 0

但是当我专门声明每个变量时,我没有得到错误。这是为什么呢?

numOf95Rows = 0
numOf85Rows = 0 
numOf85Rows = 0
numOf75Rows = 0 
numOfLess75Rows = 0

【问题讨论】:

  • 该错误是有道理的,因为您试图以错误的方式将单个值分配给 5 个变量。要实现您想要的,请执行此操作numOf95Rows = numOf85Rows = numOf85Rows = numOf75Rows = numOfLess75Rows = 0
  • 因为int 对象不是可迭代的。 Iterable 是您可以循环的对象(列表、元组、集合...)。在您的情况下,您可以使用:a,b,c = (0,0,0)
  • 您正在寻找的单线:numOf95Rows=numOf85Rows=numOf85Rows=numOf75Rows=numOfLess75Rows=0 您尝试的拆包工作如下:例如a,b=[0,0]
  • 或者,numOf95Rows, numOf85Rows, numOf85Rows, numOf75Rows, numOfLess75Rows = (0,)*5。不过,我宁愿坚持每行 1 个作业。如果有很多值,请使用列表或类似的东西。但是YMMV。

标签: python


【解决方案1】:

您的错误将由此解决

numOf95Rows, numOf85Rows, numOf85Rows, numOf75Rows, numOfLess75Rows = 0,0,0,0,0

在 python 中,当您使用任何此类多重赋值时,右侧必须是 iterable 或与以逗号分隔的变量相同数量的值。

您收到此错误是因为只有 1 个变量是整数和 non-iterable,这就是为什么它不能像 iterable 那样解包值来分配值。

希望对你有帮助

【讨论】:

  • 谢谢...完全忘记了。我非常感谢所有的帮助。
  • 我很高兴,如果你支持/接受解决方案,如果它对 @emie 有帮助,那就太好了
【解决方案2】:

如果您想为多个变量分配相同的值而不是使用,,请使用=

代码

numOf95Rows = numOf85Rows = numOf85Rows = numOf75Rows = numOfLess75Rows = 0
print(numOf95Rows)

输出

0

Refer this doc for more information

【讨论】:

    猜你喜欢
    • 2020-04-30
    • 2019-04-22
    • 2020-07-21
    • 1970-01-01
    • 2020-09-22
    • 2021-12-10
    • 2021-06-06
    • 2020-01-28
    • 1970-01-01
    相关资源
    最近更新 更多