如何在列表中添加整数值

时间:2014-04-22 17:59:44

标签: python list loops bioinformatics

我有这个程序,我想把它作为参数列出,然后将这些数字添加到新列表中一次。对于参数中给出的每个重复数字,我希望它为索引添加+1,它是一个重复的值,其值从0开始。 这就是我目前所拥有的:

def mut_sum(mutind):
    summed_mut=[]
    for i in mutind:
        if i not in summed_mut:
            summed_mut.append(i)
        else:

所以如果我把参数作为mutind等于[0,0,1,2,2,3,3,3]

在运行for循环后,summed_mut应该等于[0,1,2,3]

我希望最终的summed_mut等于[1,0,1,2]

谢谢!

1 个答案:

答案 0 :(得分:1)

使用itertools.groupby

像这样工作:

from itertools import groupby

mutind = [0,0,1,2,2,3,3,3]
vals = [(x, len(list(y))) for x, y in groupby(mutind)]
# vals now contains the values of the unique items and the count of each items
[x for x, _ in vals]
# [0, 1, 2, 3]
[y - 1 for _, y in vals]
# [1, 0, 1, 2]