当两个参数在Python映射函数中具有不同的列表长度时会发生什么?

时间:2013-10-27 04:52:38

标签: python-3.x map

list(map(lambda x, y: x+y, [1,2,3], [1,2,3,4]))

如果两个列表的长度不同,程序是否会评估,直到其中一个列表完成迭代?所以对于上面的例子,它将是[2,4,6]。

2 个答案:

答案 0 :(得分:3)

是的,最短的输入参数用于设置输入长度的界限。 According to the docs

  

返回一个迭代器,它将函数应用于iterable的每个项目,从而产生结果。如果传递了其他可迭代参数,则函数必须采用那么多参数,并且并行地应用于所有迭代的项。 使用多个迭代时,迭代器会在最短的可迭代时间停止时停止。


值得注意:这与Python 2.x行为不同,后者使用最长列表进行评估,并根据需要使用None扩展较短列表。

答案 1 :(得分:0)

Python 3.3参考:

map(function,iterable,...):返回一个迭代器,它将函数应用于每个iterable项,产生结果。如果传递了其他可迭代参数,则函数必须采用那么多参数,并且并行地应用于所有迭代的项。 使用多个迭代时,迭代器会在最短的iterable耗尽时停止。