哪个更好的选择,使用Map或For循环?
这个问题在这里已经有了答案:
正如你写的那样,绝对要使用for
循环。 map
会在python2.x上创建一个不必要的list
(全部为None
因为这可能是myfunction
的返回值),并且在python3.x上它根本不会调用你的函数,直到你实际遍历结果为止!
换句话说,只有当你真的想要迭代结果时才使用map
。 切勿将其用于功能的副作用。 为了向前兼容,不要假定map
的返回值是一个list
- 如果你需要一个list
,使用list comprehension:
[myfunction(e) for e in lst]
如果你确实需要一个迭代器,并且你试图在类似的生成器表达式和map
之间做出决定 - 这可以归结为一个偏好问题。 速度的差异几乎总是可以忽略的。 我认为大多数人喜欢美学方面的生成器表达式,但是一些项目(取决于开发人员)可能更喜欢map
。 与周围的代码一致...
我想到的一件事是
for element in list:
# you can do something to element here
myfunction(element)
在map(myfunction,list)
没有办法做同样的事情
还有一些副作用的考虑。
链接地址: http://www.djcxy.com/p/69943.html