Python 列表中最常出现的元素
有没有一种方法可以将列表中出现次数最多的元素的列表输出到列表中,或者如果存在并列关系,则输出所有出现次数最多的元素 我想在不导入任何类的情况下解决这个问题 例如,[5,4,3]将输出[5,4,3] 或 [5,4,4,5]将输出[5,4] 我已经尝试过max(set(list),key=list.count),但对领带并不起作用 我迄今为止的工作:Python 列表中最常出现的元素,python,list,Python,List,有没有一种方法可以将列表中出现次数最多的元素的列表输出到列表中,或者如果存在并列关系,则输出所有出现次数最多的元素 我想在不导入任何类的情况下解决这个问题 例如,[5,4,3]将输出[5,4,3] 或 [5,4,4,5]将输出[5,4] 我已经尝试过max(set(list),key=list.count),但对领带并不起作用 我迄今为止的工作: test = ['test1', 'test2', 'test3'] dict = {} for elements in test: if
test = ['test1', 'test2', 'test3']
dict = {}
for elements in test:
if elements in dict:
dict[elements] += 1
else:
dict[elements] = 0
dict[elements] += 1
print (dict)
您可以使用,找到最大计数,然后保留那些具有最大计数的:
from collections import Counter
counts = Counter([5, 4, 4, 5, 3])
max_count = max(counts.values())
result = [k for k, count in counts.items() if count == max_count]
print(result)
输出
[5, 4]
你可以用一本简单的字典来代替计数器:
data = [5, 4, 4, 5, 3]
counts = {}
for e in data:
counts[e] = counts.get(e, 0) + 1
max_count = max(counts.values())
result = [k for k, count in counts.items() if count == max_count]
print(result)
使用@ArkistarvhKltzuonstev是,已编辑!你的第二个解决方案有什么问题?这是可行的,但我正在寻找一种没有导入的方法。谢谢@user145682更新了答案!