用Python计数重复整数

6 投票
2 回答
5701 浏览
提问于 2025-04-15 20:02

我该怎么找出一个字符串中重复的总数呢?比如,如果字符串是 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 是一个列表,而不是字符串,不过对于这个练习来说,这点其实没什么大不了的。

撰写回答