Python返回结果:TypeError:zip参数#2必须支持迭代

时间:2018-01-27 16:48:30

标签: python typeerror assert

我收到一个带有函数返回的TypeError“zip参数#2必须支持迭代”。返回结果是一个列表,例如[1.20,2.51,6.89]我将其与预期结果列表[1.2,2.5,6.9]进行比较。如果差异足够小,我会通过。这是一段代码:

def calc():
    last = [1.20, 2.51, 6.89]
    return last
    pass
def check():
    result = calc()
    expected_result = [1.2, 2.5, 6.9]
    for res, exp_res in zip(expected_result, result):  # line of TypeError: zip argument #2 must support iteration
        assert abs(exp_res - res) < 1e-1  # modified from 1e-2
check()

我测试的内容: 1)当我在上面的2个独立函数中运行时,我收到此TypeError:1个要计算的函数,以及1个用assert测试的函数 2)通过在同一个函数中编写这两个列表,然后我调用,然后这工作正常(=没有错误消息)。 但是,..我必须分开2个功能。 任何想法或建议将非常感激。 谢谢!

1 个答案:

答案 0 :(得分:0)

在下一步中,我测试是否可以迭代返回,因为此TypeError提到不支持此返回。我找到了函数calc()返回的一些测试。这是一个例子:

object_iterator = iter(last)
print object_iterator   # output: True

它打印True,因此指定可以迭代返回。其他测试证实了这一点。

有人对下一步解决此TypeError有任何建议吗?