-1

我想知道是否有更“简洁”或pythonic的方式来做到这一点。

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

这是我正在做的事情的粗略表示,除了它foo是一个对象 id 的列表,bar实际上是bar.delay因为它是一个 Celery 任务。

现在这可行,但它具有生成结果列表的副作用(即 all None)。除了 for 循环之外,还有其他方法可以做到这一点吗?

4

1 回答 1

3

循环有什么问题?:

for item in foo:
    bar(item)

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

于 2013-09-25T03:26:43.200 回答