【问题标题】:Error saying 'Not enough values to unpack Expected 2 got 1'错误提示“没有足够的值来解压预期 2 得到 1”
【发布时间】:2020-06-28 15:18:01
【问题描述】:
tambola_callout = {}
for line in open("bingo-call-out.txt"):
    num, callout = line.split(";")
    tambola_callout[num] = callout

不知道是什么问题,怎么办?

【问题讨论】:

  • 发生错误时您是否尝试检查line 的值是多少?

标签: python


【解决方案1】:

这一行:

num, callout = line.split(';')

预计您对split 的调用将返回正好包含两个元素的列表。如果您在赋值过程中尝试解压缩过少或过多的值,Python 将会出错。

例如,这将返回单个元素列表:

'something'.split(';')  # == ['something']

确保你的字符串是你所期望的。

【讨论】:

    【解决方案2】:

    这只是意味着您的文件中的其中一行bingo-call-out.txt 的格式为<all characters here> 而不是<some characters here>;<some characters here>

    这个错误的意思是,在一般情况下,假设 line = abcd;efgh

    line.split(";") 将返回一个包含两个元素[abcd,efgh] 的数组,这两个元素将分别分配给numcallout

    现在如果有一个 line = abcde,那么 line.split(';') 只返回 ['abcde'],这是一个单元素列表,可以像您的语法一样解压缩成 2 个变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 2020-09-28
      • 2018-04-21
      • 1970-01-01
      • 2018-11-08
      • 2018-05-13
      相关资源
      最近更新 更多