首页 > 解决方案 > 如何检查列表中是否有重复项?如果是这样,我如何检查有多少重复项?

问题描述

我有一行代码可以列出从 a 到 z 的列表

possible_draws = list(string.ascii_lowercase)

一个用户从里面随机抽取6个字母(可以骗)

人家说样品不骗人,那我该怎么办?

user_numbers = random.sample(possible_draws, 6)

然后我打印 User_numbers

print(user_numbers)

向玩家展示绘制了哪些字母。

但我不知道如何检查是否有重复

user_numbers

如果有重复,有多少重复?

*如果有超过 1 个重复的集合,它会选择具有更多重复的集合。

我怎么能那样做?

标签: python

解决方案


user_numbers = ...  #Insert your list here


list3 = []
list3a = {}
for i in user_numbers:
    if i not in list3:
        list3.append(i)
    else:
        if i not in list3a:
            list3a[i] = 1
        else:
            list3a[i] += 1

我只是在这里使用了 list3 和 list3a,因为当我仔细检查自己时,它们在我的 IDE 中很方便。它将在 list3a 的字典中输出一个删除重复项的列表(list3)和重复项的数量(不包括原始)

list3a 可以很容易地按照以下方式排序:

list3b = dict(sorted(list3a.items(), key=lambda item: item[1],reverse=True),)

如果您使用 Python 3.7+,则最高重复数由下式给出:

next(iter(list3b))

推荐阅读