我想计算给定序列中出现的相邻重复数不同于零的小序列的次数。让三个序列:
seq1 = [1, 1, 2, 2, 3, 3, 3]
seq2 = [1, 1, 0, 1, 1]
seq3 = [1, 1, 0, 0, 1, 1, 1, 2, 2, 0, 1, 1, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)
该序列seq1有3组个小的序列:[1, 1],[2, 2],和
[3, 3, 3]; 该序列seq2有2个小序列,均以[1, 1]
0隔开;和序列seq3,具有4组个小的序列:所述第一[1, 1],[1, 1, 1],[2, 2],和第二[1, 1]。
使用itertools.groupby:
>>> from itertools import groupby
for k,g in groupby(seq1):
if k != 0:
print list(g)
...
[1, 1]
[2, 2]
[3, 3, 3]
for k,g in groupby(seq2):
if k != 0:
print list(g)
...
[1, 1]
[1, 1]
Run Code Online (Sandbox Code Playgroud)
我想你现在可以数数了。:)