Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为iterable中的每个项调用函数_Python_Loops_Iterator - Fatal编程技术网

Python 为iterable中的每个项调用函数

Python 为iterable中的每个项调用函数,python,loops,iterator,Python,Loops,Iterator,我想知道是否有一种更“简洁”或更像蟒蛇的方式来做到这一点 foo = range(10) def bar (num): if num > 5: print "Num >5" map(bar, food) 这是我正在做的一个粗略的表示,除了foo是一个对象id列表,而bar实际上是bar.delay,因为这是一个芹菜任务 现在这是可行的,但它的副作用是生成一个结果列表(全部None)。除了for循环,还有其他方法吗?循环有什么问题吗 for item in f

我想知道是否有一种更“简洁”或更像蟒蛇的方式来做到这一点

foo = range(10)
def bar (num):
    if num > 5:
        print "Num >5"
map(bar, food)
这是我正在做的一个粗略的表示,除了
foo
是一个对象id列表,而
bar
实际上是
bar.delay
,因为这是一个芹菜任务


现在这是可行的,但它的副作用是生成一个结果列表(全部
None
)。除了for循环,还有其他方法吗?

循环有什么问题吗

for item in foo:
    bar(item)

当然,如果你想变得有趣,你可以制作一个生成器
gen=(foo中item的bar(item)
或使用
itertools.imap
,然后使用itertools的配方…

for loop是最具python风格的方法,但是如果你真的厌倦了这种方法,请参阅我在这里提出的问题中的xmap函数:因为我不喜欢让这两行代码分散在我的代码中。当我习惯了生成器和列表理解之类的东西时,感觉很糟糕。但是,考虑到Shashank的性能结果,我将使用for循环。理解和
map
-类函数都旨在构建一些对象(列表或生成器等)。如果您只想迭代对象并执行某些操作,而不构建任何内容,那么for循环始终是最干净的解决方案。