有沒有一種方法可以內聯此循環?內聯表達式評估
already_inserted = True
for i in indexes:
already_inserted = already_inserted and bitfield[i]
有沒有一種方法可以內聯此循環?內聯表達式評估
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)
+1:兩個頭腦以相同的速度工作:) – 2012-02-07 11:22:19
還有了'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