内联表达式评估
问题描述:
有没有一种方法可以内联此循环?内联表达式评估
already_inserted = True
for i in indexes:
already_inserted = already_inserted and bitfield[i]
答
already_inserted = all(bitfield[i] for i in indexes)
答
如何:
already_inserted = all(bitfield[i] for i in indexes)
+0
+1:两个头脑以相同的速度工作:) – 2012-02-07 11:22:19
+6
还有了'all'功能的两个优点:1)它将*计算短路,并在找到第一个“False”值时停止迭代; 2)它是内置的,因此迭代完全在Python VM中的C代码中运行。 – 2012-02-07 11:32:06
答
所有()函数接受迭代并会自动遍历所有元素,并应用布尔他们每个人。因此,足够写:
already_inserted = all(bitfield)
(+1)相同的速度确实:) – NPE 2012-02-07 11:23:25