列表中的序列数

时间:2014-03-27 18:59:00

标签: python sequence

我需要确定整数列表中的序列数。列表中的成员可以是序列的一部分,它的范围是65.所以在我的列表中,

43
83
90
250
265
500

43,43,90是1个序列中的所有成员,它们都在65的范围内。另外250,265组成1个序列。现在我的代码从列表中创建元组。 (43,43)(83,90)但它知道它们都是同一序列的一部分。

while count < len(w_seq_list)-1:
 if((w_seq_list[count+1] > w_seq_list[count]) and ((w_seq_list[count+1] - w_seq_list[count]) <= 65)):

     wr.append((w_seq_list[count],w_seq_list[count+1])) // add tuple to sequence list
     count += 1
 else:
     count += 1
     continue

我可以添加什么来确定我的元组是否在同一序列中以获得正确的计数?如果您需要进一步澄清,请与我们联系。谢谢!

1 个答案:

答案 0 :(得分:1)

def grouper(my_list):
    previous, temp, result = my_list[0], [my_list[0]], []
    for number in my_list[1:]:
        if number - previous > 65:
            result.append(temp)
            temp, previous = [number], number
        else:
            temp.append(number)
    if temp:
        result.append(temp)
    return result

assert(grouper([43, 83, 90, 250, 265, 500]) == [[43, 83, 90], [250, 265], [500]])
assert(grouper([15, 43, 83, 90]) == [[15, 43], [83, 90]])