【发布时间】:2018-09-09 23:01:30
【问题描述】:
我有一个元组列表:
[(0, 1), (0, 1), (0, 0), (0, 0), (1, 0), (1, 0), (1, 1), (1, 0), (1, 0), (2, 0), (2, 1), (2, 0), (3, 0), (3, 1), (3, 1), (3, 0), (3, 0), (4, 0), (4, 1), (4, 0), (4, 1), (4, 1), (5, 0), (5, 0), (5, 1), (5, 1)]
我想对左侧相等的元组的右侧求和,并将其放入另一个元组列表中,所以对于上面的列表,我会得到:
[(0,2),(1,1),(2,1),(3,2),(4,3),(5,2)]
我试过了:
k=0
for i,TCtup in enumerate(wordsMatchingList):
if wordsMatchingList[i][0]==k:
TC_matches+=wordsMatchingList[i][1]
print("k: {} /// TC_matches: {}".format(k,TC_matches)) #for checking
else:
groupedWordsMatchingList.append(tuple((k,TC_matches)))
TC_matches=0
k+=1
但从 k=1 开始,由于 else 条件,它只为每 k 少循环一次。
谢谢
【问题讨论】:
-
你看过 itertools.groupby 了吗?
-
你的元组是否保证是这样排序的?
-
保罗鲁尼-我现在就去找。
-
abarnert- 是的,它保证是有序的
标签: python python-3.x tuples