ValueError : 太多值无法解包
Posted
技术标签:
【中文标题】ValueError : 太多值无法解包【英文标题】:ValueError : too many values to unpack 【发布时间】:2019-03-28 10:28:50 【问题描述】:我不明白下面的代码。当我执行它时,它给出了值错误太多的值来解包
train_data=[data, Label]
print train_data
for data, Label in train_data:
print data
print Label
output
[array([[23., 114., 49., ..., 61., 66., 75.,],
[134., 345., 123., ..., 252., 249., 255.],
....
[123., 97., 45., ..., 33., 234.,132.],
[76., 98., 54., ..., 243., 211.,187.]], dtypye=float32),
array([0,0,1,0,2,1,1,0,0,2,2,2,0,0,0,0,2,0,0,2,2,2,0,2,2,1,1,0])]
ValueError Traceback(most recent call last)
1. print train_data
--->2. for data,Label in train_data
ValueError: too many values to unpack
请帮我解决这个问题。
【问题讨论】:
从问题中我不确定您在问什么,但我相信您的问题是 for 循环中缺少*
。我假设 Label 是每一行的最后一个值?那么你的 for 循环应该是:for *data, Label in train_data:
在 for 循环中应该是 data
而不是 *data
。
这个错误意味着你试图在仅 2 个变量中解压缩太多变量。问题是您使用train_data=[data, Label]
的方式对我来说似乎很奇怪。这就像您正在尝试创建数据元组及其标签,但实际上将整个数据数组放在首位,然后将标签数组放在它旁边
【参考方案1】:
由于我没有您的数据,我无法尝试重现您的问题。不过,我建议您尝试以下方法。
用zip(list_a, list_b)
代替train_data=[data, Label]
试试这个,让我知道它是否有效
【讨论】:
你是对的,遍历两个列表(或数组)是用zip
完成的以上是关于ValueError : 太多值无法解包的主要内容,如果未能解决你的问题,请参考以下文章
Couchbase cli cluster-init 返回“太多值无法解包”
OpenCV python:ValueError:解包的值太多