ValueError:没有足够的值来解包(预期 3,得到 2)
Posted
技术标签:
【中文标题】ValueError:没有足够的值来解包(预期 3,得到 2)【英文标题】:ValueError: not enough values to unpack (expected 3, got 2) 【发布时间】:2017-09-14 07:53:31 【问题描述】:第一次发布问题,所以请放轻松。
我在网上找到了一些我正在尝试自己实现的代码,尽管我一直遇到这个错误
ValueError: 没有足够的值来解包(预期 3,得到 2)
代码如下:
for i,feats,label in enumerate(testfeats):
refsets[label].add(i)
observed = classifier.classify(feats)
testsets[observed].add(i)
如果你能帮助我,那就太好了:)
【问题讨论】:
【参考方案1】:要添加到 timgeb 的答案,解决方案是更改 for 循环的标题:
for i, (feats, label) in enumerate(testfeats):
...
等同于:
for i, itemValue in enumerate(testfeats):
feats, label = itemValue
...
【讨论】:
【参考方案2】:简单来说,enumerate() 只返回两个值,而您期望的是三个。 即预期 3,收到 2 :)
【讨论】:
【参考方案3】:enumerate
为您的 (index, value)
元组提供一个迭代器,这些元组的长度始终为 2。
您正在尝试将每个二值元组解压缩为三个名称(i
、feats
、label
),由于元组中的值和您尝试分配的名称数量不匹配,这一定会失败.
【讨论】:
以上是关于ValueError:没有足够的值来解包(预期 3,得到 2)的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:没有足够的值来解包(预期 3,得到 2)。啥地方出了错? [复制]
Python 2 - ValueError:没有足够的值来解包(预期 6,得到 1)
如何修复ValueError:没有足够的值来解包(预期2,得到1)[重复]
ValueError:没有足够的值来解包(预期为 2,得到 1)当试图在 python 中解包 dict 以使用 pandas 进行数据标记时