使用 enumerate() 时出现“ValueError:需要超过 2 个值才能解压”

Posted

技术标签:

【中文标题】使用 enumerate() 时出现“ValueError:需要超过 2 个值才能解压”【英文标题】:"ValueError: need more than 2 values to unpack" while using enumerate() 【发布时间】:2019-01-19 13:18:50 【问题描述】:

我正在尝试使用 zip()enumerate() 遍历由数组对组成的数组的索引和相应元素,但出现以下错误:

a_1 = [1, 2, 3]
a_2 = [11, 22, 33]
a_3 = [111, 222, 333]


b_1 = [5, 6, 7]
b_2 = [55, 66, 77]
b_3 = [555, 666, 777]

for k in range(1, 10):
    for index, a, b in enumerate(zip([a_1, a_2, a_3],
    [b_1, b_2, b_3])):
        print index, a, b

但我收到关于第一行的以下错误:

ValueError: need more than 2 values to unpack

【问题讨论】:

【参考方案1】:

enumerate 返回双元组,但是因为您枚举了一个 zip(在您的情况下也返回双元组),所以原始双元组的第二个元素也是双元组。你必须先解包外部元组,然后是内部元组:

for index, (a, b) in enumerate(zip([a_1, a_2, a_3],
    [b_1, b_2, b_3])):

【讨论】:

【参考方案2】:

您的元组结构为(index, (a, b)),而不是(index, a, b)。你需要像那样解压它们。

for index, (a, b) in ...

【讨论】:

以上是关于使用 enumerate() 时出现“ValueError:需要超过 2 个值才能解压”的主要内容,如果未能解决你的问题,请参考以下文章

使用 FolderBrowserDialog 时出现异常

使用串行插件时出现 Ionic Capacitor Android 错误 - 连接到外部设备时出现 Cordova_not_available

在 keras 中使用 EfficientNet 时出现 ResourceExhaustedError

使用 htdocs xampp 运行命令时出现以下错误

使用 functools.reduce 时出现属性错误

使用此命令时出现错误,我不知道为啥? [复制]