首页 > 解决方案 > 在单行中嵌套 for 循环

问题描述

我有一个逻辑需要计算迭代

counts = []
for .. in ..:
    count = 0
    for .. in ..:
        if ..:
            count +=1
    counts.append(count)

如何在python中将此逻辑更改为单行循环

标签: python

解决方案


sum()与嵌套列表推导一起使用:

counts = [sum([1 for c in b if p(c)]) for b in a]

这相当于:

counts = []
for b in a:
    count = 0
    for c in b:
        if p(c):
            count = count + 1
    counts.append(count)

推荐阅读