使用理解來計算出現次數
當我們想要計算迭代中的專案數量,滿足某些條件時,我們可以使用理解來生成慣用語法:
# Count the numbers in `range(1000)` that are even and contain the digit `9`:
print (sum(
1 for x in range(1000)
if x % 2 == 0 and
'9' in str(x)
))
# Out: 95
基本概念可歸納為:
- 迭代
range(1000)
中的元素。 - 連線所有需要的
if
條件。 - 使用 1 作為表示式為每個符合條件的專案返回 1。
- 總結所有
1
s 以確定滿足條件的專案數量。
注意 :這裡我們不是在列表中收集 1
s(注意沒有方括號),但是我們將這些直接傳遞給 sum
函式,它將它們相加。這稱為生成器表示式,類似於理解。