用于使用itertools进行循环以计算行数

问题描述 投票:0回答:1

我有一个16行的.csv文件。每行以字母开头,在这种情况下以ab为开头。

外部for循环将逐行检查第一个字母。如果行xb开头,则第二个for循环将对所有行进行计数,直到再次出现b

示例:

1. a
2. a
3. a
4. a
5. b
6. a
7. a
8. a
9. a
10.a
11.a
12.a
13.b
14.a
…

b在第5行中,在第13行中的下一行。之间有7行...

这是我的脚本,用于统计从第5行到第13行的行:

“ Verschachtelteitertools”

import itertools
import re  
df = open('zeilen.csv')

for i, line in enumerate(df):
    #print(i,line)
    if re.search('b',line):
        #print(i,line)
        k = i+1
        count = 1
        #print(k)
        for line in itertools.islice(df,k):

            if bool(re.search('b',line)) == False:
                count=count+1
        lineX = count

print(lineX)

我选择了itertools.islice()来对第13行中b(第一次出现)和b之间的行进行计数。k应该代表内部循环的起点。

python loops for-loop nested itertools
1个回答
0
投票

import itertools import re df = open('zeilen.csv') for i, line in enumerate(df): #print(i,line) if re.search('b',line): #print(i,line) k = i+1 count = 1 #print(k) for line in itertools.islice(df,k): if bool(re.search('b',line)) == False: count=count+1 lineX = count print(lineX)

© www.soinside.com 2019 - 2024. All rights reserved.