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时有效。