【发布时间】:2012-02-28 19:44:04
【问题描述】:
有没有办法可以内联这个 for 循环?
already_inserted = True
for i in indexes:
already_inserted = already_inserted and bitfield[i]
【问题讨论】:
标签: python syntax for-loop list-comprehension
有没有办法可以内联这个 for 循环?
already_inserted = True
for i in indexes:
already_inserted = already_inserted and bitfield[i]
【问题讨论】:
标签: python syntax for-loop list-comprehension
all() 函数接受可迭代,并会自动遍历所有元素并将 bool 应用于每个元素。因此,写就足够了:
already_inserted = all(bitfield)
【讨论】:
怎么样:
already_inserted = all(bitfield[i] for i in indexes)
【讨论】:
all 函数有两个优点:1) 当找到第一个 False 值时,它将短路计算并停止迭代;2)它是内置的,因此迭代完全在 Python VM 中的 C 代码中运行。
already_inserted = all(bitfield[i] for i in indexes)
【讨论】: