Python使用理解计算发生次数

示例

当我们要计算满足一定条件的可迭代项的数量时,可以使用理解来生成惯用语法:

# 计算`range(1000)`中的偶数并包含数字'9'的数字:
print (sum(
    1 for x in range(1000) 
    if x % 2 == 0 and
    '9' in str(x)
))
# 出:95

基本概念可以概括为:

  1. 遍历中的元素range(1000)。

  2. 连接所有所需if条件。

  3. 使用1作为表达式,为每个符合条件的项目返回1。

  4. 对所有1s求和,以确定满足条件的项目数。

注意:这里我们没有将1s收集在列表中(请注意没有方括号),但是我们sum将它们直接传递给求和的函数。这称为生成器表达式,类似于Comprehension。