python - 如果某些元素重复相同的时间,则列表中的最高出现次数
问题描述
我需要编写一个函数来接收一个列表并返回一个重复次数最多的元素的列表。我的问题是我写的函数只返回一个重复的元素,我需要所有重复次数最多的元素(如果它们重复相同的时间)。在示例中,我将函数需要返回菱形、黑桃,但结果我只返回了菱形
def getHighestOcurrence(listAnyKind):
counter = 0
num = listAnyKind[0]
for i in listAnyKind:
frequency = listAnyKind.count(i)
if (frequency > counter):
counter = frequency
num = i
return num
listAnyKind = ['diamonds', 'spades', 'spades', 'clubs','hearts', 'diamonds']
print(getHighestOcurrence(listAnyKind))
解决方案
以下是您可以Counter
从集合模块中使用的方法:
from collections import Counter
def getHighestOcurrence(listAnyKind):
c = Counter(listAnyKind)
m = max(c.values())
return [k for k in c if c[k] == m]
listAnyKind = ['diamonds', 'spades', 'spades', 'clubs','hearts', 'diamonds']
print(getHighestOcurrence(listAnyKind))
输出:
['diamonds', 'spades']
推荐阅读
- react-native - React Native:如何获取选中的复选框?
- node.js - Bot Framework 建议的操作
- php - 访问令牌从 URL 打印
- hibernate - 休眠乐观锁:当前线程中的 2 次更新之间的另一个线程更新
- javascript - Select2 未加载到模板中。[流星+火焰]
- video - ffmpeg覆盖过滤器:保持音频和视频质量
- android - 等待 api 时进度条不显示
- bash - 如何检查所有子文件夹和文件是否属于 shell bash 脚本中的特定用户?
- javascript - Javascript日期对象问题
- c# - 为什么这个嵌套循环输出从 8 和 18 开始?