首页 > 解决方案 > for 循环 - 没有足够的值来解包(预期 3,得到 2),但我提供了 3

问题描述

def func(a,b,c):
    for x,y,z in a,b,c:
        pass

func(((1,2),(1,3)),((1,4),(1,5)),(1,2))

我希望x,y,z得到值(1,2),(1,4)1。相反,我收到一个错误:

ValueError: not enough values to unpack (expected 3, got 2)

标签: pythonpython-3.8

解决方案


您需要压缩列表才能执行这样的 for 循环,而无需遍历传入的参数func()

def func(a,b,c):
    for x,y,z in zip(a,b,c):
        pass

func(((1,2),(1,3)),((1,4),(1,5)),(1,2))

否则,for 循环将遍历传入的每个参数func


推荐阅读