2016-04-07 119 views
-3

重複值在Python我試圖採取:添加增量計數器列表

mylist=[a,a,a,b,b,c] 

,並使其進入:

mylist=[(a,0),(a,1),(a,2),(b,0),(b,1),(c,0)] 
+1

在你的例子中,所有相等的值是連續的。這總是如此嗎? – DSM

+1

那麼,你的問題是什麼?你有什麼嘗試?你碰到什麼問題?堆棧溢出不是一個代碼寫入服務,你不能只發布你的作業分配或任務要求,並要求有人生成代碼。但是如果您自己解決了一個問題並遇到特定問題,我們很樂意提供幫助。 – Blckknght

+0

@Blckknght感謝您的反饋。我很抱歉,我試圖儘可能直接,而不會混淆我非常混亂和業餘失敗的嘗試。 – user2529747

回答

0

下面是一個使用計數器的解決方案:

from collections import Counter 
c = Counter() 
l = ['a', 'a', 'a', 'b', 'b', 'c', 'c'] 
out = [] 
for e in l: 
    out.append((e, c[e])) 
    c[e] += 1 
print(out) 

這裏是另一個,它假定輸入列表是排序的:

from itertools import groupby 
print(tuple((e, idx) for _, group in groupby(l) for idx, e in enumerate(group))) 
+0

非常感謝! – user2529747