相关疑难解决方法(0)

执行生成器表达式的最pythonic方法是什么?

Python的越来越多的特性变成了"懒惰的可执行文件",比如生成器表达式和其他类型的迭代器.然而,有时候,我发现自己想要推出一个"for"循环,只是为了执行一些动作.

让循环实际执行的最pythonic是什么?

例如:

a = open("numbers.txt", "w")
(a.write ("%d " % i) for i in xrange(100))
a.close()
Run Code Online (Sandbox Code Playgroud)

不是代码,但你明白我的意思.如果我使用列表生成器,相反,我有副作用创建一个填充"无"的N长度列表.

目前我所做的是在调用"any"或"all"时使用表达式作为参数.但是我想找到一种不依赖于循环中执行的表达式结果的方法 - "any"和"all"都可以根据所评估的表达式停止.

要清楚,这些是我已经知道的方法,每个都有它的缺点:

[a.write ("%d " % i) for i in xrange(100))]

any((a.write ("%d " % i) for i in xrange(100)))

for item in (a.write ("%d " % i) for i in xrange(100)): pass
Run Code Online (Sandbox Code Playgroud)

python generator lazy-evaluation

3
推荐指数
3
解决办法
487
查看次数

标签 统计

generator ×1

lazy-evaluation ×1

python ×1