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

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

4

2 回答 2

3

是的,最短的输入参数用于设置输入长度的界限。根据文档

返回一个迭代器,它将函数应用于可迭代的每个项目,产生结果。如果传递了额外的可迭代参数,则函数必须接受那么多参数并并行应用于所有可迭代的项目。对于多个可迭代对象,迭代器会在最短的可迭代对象耗尽时停止。


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

于 2013-10-27T05:03:57.273 回答
0

Python 3.3 参考:

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

于 2013-10-27T05:04:16.287 回答