可迭代中每个项目的调用函数

时间:2013-09-25 03:22:55

标签: python loops iterator

我想知道是否有更“简洁”或pythonic的做法。

foo = range(10)
def bar (num):
    if num > 5:
        print "Num >5"
map(bar, food)

这是我正在做的事情的粗略表示,除了foo是对象ID的列表而bar真的是bar.delay,因为它是Celery任务。

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

1 个答案:

答案 0 :(得分:3)

循环有什么问题?:

for item in foo:
    bar(item)

当然,如果你想获得幻想,你可以制作一个生成器gen = (bar(item) for item in foo)或使用itertools.imap,然后使用itertools中的consume配方......