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。

您正在尝试将每个二值元组解压缩为三个名称(ifeatslabel),由于元组中的值和您尝试分配的名称数量不匹配,这一定会失败.

【讨论】:

以上是关于ValueError:没有足够的值来解包(预期 3,得到 2)的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:没有足够的值来解包(预期 3,得到 2)。啥地方出了错? [复制]

Python 2 - ValueError:没有足够的值来解包(预期 6,得到 1)

如何修复ValueError:没有足够的值来解包(预期2,得到1)[重复]

ValueError:没有足够的值来解包(预期2,得1)

ValueError:没有足够的值来解包(预期为 2,得到 1)当试图在 python 中解包 dict 以使用 pandas 进行数据标记时

OPEN_CV 错误没有足够的值来解包(预期 3,得到 2)[重复]