使用map对参数列表应用函数并忽略结果可以吗?
你觉得用map这个工具来对一堆参数应用一个函数,然后不管结果,这样做可以吗?
map(foo, bar)
这样做可能会让看代码的人觉得有问题。
3 个回答
0
这是我把它拼凑在一起的方法:
from itertools import imap, ifilterfalse
tuple(ifilterfalse(None, imap(lambda x: x+1, range(10))))
这个 tuple
在这种输入情况下总是会是空的。
6
这种做法是不被推荐的。如果你不打算使用返回的列表,最好还是用一个for循环。
8
当你想要用map这个方法来处理列表中的每个项目时,这是一种很好的方式。虽然很多人觉得用列表推导式或者生成器写起来更清晰:
result = [foo(x) for x in bar]
不过,如果你并不打算使用函数调用的结果,而只是想关注它带来的副作用,那么你应该用过程式的写法来实现:
for x in bar:
foo(x)