如何计算Python序列中重复数字的序列?

时间:2013-07-11 15:25:36

标签: python sequence

我想计算相邻重复的小序列的次数 在给定序列中出现与零不同的数字。设三个序列:

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]

序列seq1有3个小序列:[1, 1][2, 2][3, 3, 3];序列seq2有两个小序列,[1, 1] 以0分隔;序列seq3有4个小序列: 第一个[1, 1][1, 1, 1][2, 2]和第二个[1, 1]

1 个答案:

答案 0 :(得分:4)

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

我认为你现在可以进行计数了。 :)