list(map(lambda x, y: x+y, [1,2,3], [1,2,3,4]))
如果两个列表的长度不同,程序是否会评估,直到其中一个列表完成迭代?所以对于上面的例子,它将是[2,4,6]。
答案 0 :(得分:3)
是的,最短的输入参数用于设置输入长度的界限。 According to the docs:
返回一个迭代器,它将函数应用于iterable的每个项目,从而产生结果。如果传递了其他可迭代参数,则函数必须采用那么多参数,并且并行地应用于所有迭代的项。 使用多个迭代时,迭代器会在最短的可迭代时间停止时停止。
值得注意:这与Python 2.x行为不同,后者使用最长列表进行评估,并根据需要使用None
扩展较短列表。
答案 1 :(得分:0)
Python 3.3参考:
map(function,iterable,...):返回一个迭代器,它将函数应用于每个iterable项,产生结果。如果传递了其他可迭代参数,则函数必须采用那么多参数,并且并行地应用于所有迭代的项。 使用多个迭代时,迭代器会在最短的iterable耗尽时停止。