我有代码:
num_for_loops = 0
for line in lines:
if line.strip().startswith('for '):
num_for_loops += 1
return num_for_loops
我需要将其压缩为尽可能少的线条。有没有办法通过结合 for 和 if 语句来做到这一点?上下文无关紧要。
我有代码:
num_for_loops = 0
for line in lines:
if line.strip().startswith('for '):
num_for_loops += 1
return num_for_loops
我需要将其压缩为尽可能少的线条。有没有办法通过结合 for 和 if 语句来做到这一点?上下文无关紧要。
num_for_loops = sum(line.strip().startswith("for ") for line in lines)
既然你马上回来num_for_loops
我想你真的只是想要
return sum(line.strip().startswith("for ") for line in lines)
生成器表达式总是赢得简洁的代码竞赛:
return sum(1 for line in lines if line.strip().startswith('for '))
这会生成一系列长度等于以“for”开头的行数的 1,并在生成列表时对列表求和,这样您就可以解析 TB 的数据而不会耗尽内存。