Python 在单行中嵌套for循环

Python 在单行中嵌套for循环,python,Python,我有一个逻辑需要计算迭代次数 counts = [] for .. in ..: count = 0 for .. in ..: if ..: count +=1 counts.append(count) 如何在python中将此逻辑更改为单行循环使用带有嵌套列表理解的sum(): counts = [sum([1 for c in b if p(c)]) for b in a] 这相当于: counts = [] for b

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

counts = []
for .. in ..:
    count = 0
    for .. in ..:
        if ..:
            count +=1
    counts.append(count)
如何在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)
使用嵌套列表理解的
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)

你能提供完整的嵌套结构吗?这是我的嵌套结构,条件是我有dataframe列data1。在单行中放置嵌套循环的目的是什么?只是好奇?2.当所有条件和变量都是
时,很难回答这个问题。3.您可能希望在列表理解中包含一个列表理解。您可以提供完整的嵌套结构吗?这是我的嵌套结构,条件是我有dataframe列data1。在单行中放置嵌套循环的目的是什么?只是好奇?2.当所有条件和变量都是
时,很难回答这个问题。3.您可能希望在列表理解中包含列表理解。可能重复或
counts=[sum(p(c)表示b中的c)表示a中的b]
(滥用
bool
子类
int
的事实,也不会创建中间列表)以节省一点点的时间memory@DeepSpace嘿,很好,我喜欢:)。仅当
p(c)
返回布尔类型时才有效,尽管(真/假)@TerryA确实如此,或0/1。或
计数=[sum(p(c)代表b中的c)代表a中的b]
(滥用
bool
子类
int
的事实,也不创建中间列表)以节省一点点时间memory@DeepSpace嘿,很好,我喜欢:)。仅当
p(c)
返回布尔类型(真/假)@TerryA或0/1时有效。