用Python计数重复整数
我该怎么找出一个字符串中重复的总数呢?比如,如果字符串是 j= [1,1,1,2,2,2]
,那么它应该能找到 4
个重复的数字?我只找到了一种方法,可以显示每个数字出现了多少次。
2 个回答
8
看起来已经有一个很受欢迎的回答了,但如果你想同时保留每个重复项的计数,Python 2.7 中的新 Counter()
集合对象非常适合这个需求。
>>> from collections import Counter
>>> j = [1,1,1,2,2,2]
>>> Counter(j)
Counter({1: 3, 2: 3})
>>> sum([i - 1 for i in c.values() if i > 1])
4
>>> {k: v - 1 for k, v in c.items()} # individual dupes
{1: 2, 2: 2}
在 ActiveState 上有一个 Counter 的回溯版本
17
>>> j= [1,1,1,2,2,2]
>>> len(j) - len(set(j))
4
顺便说一下,j
是一个列表,而不是字符串,不过对于这个练习来说,这点其实没什么大不了的。