社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
某随机序列[12, 4, 6, 45, 12, 78, .....]中,找出出现次数最多的三个元素
以及他们出现的次数
>>> from random import randint
>>> from collections import defaultdict
>>> data = [randint(0, 10) for _ in range(0, 30)]
>>> d = defaultdict(int)
>>> for x in data:
... d[x] += 1
...
>>> d
defaultdict(<class 'int'>, {0: 5, 1: 1, 2: 3, 3: 6, 4: 5, 5: 1, 6: 3, 7: 1, 8: 2, 9: 1, 10: 2})
>>> new_d = sorted([(v, k) for k, v in d.items()])
>>> new_d[-3:]
[(5, 0), (5, 4), (6, 3)]
>>> from random import randint
>>> from collections import Counter
>>> data = [randint(0, 10) for _ in range(0, 30)]
>>> c = Counter(data)
>>> c.most_common(3)
[(7, 5), (0, 4), (1, 4)]
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!