表达式内联求值

9

有没有一种方法可以内联这个for循环?

already_inserted = True
for i in indexes:
    already_inserted = already_inserted and bitfield[i]
3个回答

11
already_inserted = all(bitfield[i] for i in indexes)

10

怎么样:

already_inserted = all(bitfield[i] for i in indexes)

6
all函数有两个优点:1)当找到第一个“False”值时,它会短路计算并停止迭代;2)它是内置的,因此迭代在Python虚拟机中的C代码中完全运行。 - Martin Geisler

1

all() 函数接受可迭代对象并将自动遍历所有元素并对每个元素应用 bool。因此,只需编写:

already_inserted = all(bitfield)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接