当我们要计算满足一定条件的可迭代项的数量时,可以使用理解来生成惯用语法:
# 计算`range(1000)`中的偶数并包含数字'9'的数字: print (sum( 1 for x in range(1000) if x % 2 == 0 and '9' in str(x) )) # 出:95
基本概念可以概括为:
遍历中的元素range(1000)。
连接所有所需if条件。
使用1作为表达式,为每个符合条件的项目返回1。
对所有1s求和,以确定满足条件的项目数。
注意:这里我们没有将1s收集在列表中(请注意没有方括号),但是我们sum将它们直接传递给求和的函数。这称为生成器表达式,类似于Comprehension。