【发布时间】:2017-10-19 06:05:28
【问题描述】:
我通常这样做:
[worker.do_work() for worker in workers]
这样的好处是可读性很强,并且包含在一行中,但是创建一个我不需要的对象(列表)的问题,这意味着垃圾收集被不必要地触发了。
显而易见的选择:
for worker in workers:
worker.do_work()
也很易读,但使用了两行。
是否有一种单行方式可以实现相同的结果,而不会创建不必要的对象?
【问题讨论】:
-
你为什么要在意一行行呢?
-
@BrenBarn 我经常这样做,我希望尽可能减少我的代码,同时保持它的可读性。
-
for worker in workers: worker.do_work()作为一个班轮工作...... -
@KenY-N 不符合 PEP8
-
单线风格被列为“宁可不”而不是“绝对不”。
标签: python loops iteration list-comprehension