3

特定のシーケンスで、ゼロとは異なる隣接する繰り返し数の小さなシーケンスが何回発生するかを数えたいと思います。3 つのシーケンスを考えてみましょう:

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]

シーケンスには、 、 、および の 3 つの小さなシーケンス seq1があります。シーケンスには 2 つの小さなシーケンスがあり、両方とも 0 で区切られています。およびシーケンスには、最初の 、、、および 2 番目の 4 つの小さなシーケンスがあります。[1, 1][2, 2][3, 3, 3]seq2[1, 1]seq3[1, 1][1, 1, 1][2, 2][1, 1]

4

1 に答える 1

5

使用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]

これで数えられると思います。:)

于 2013-07-11T15:28:28.793 に答える