gpt4 book ai didi

python - 查找列表中的最大元素

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:55 25 4
gpt4 key购买 nike

所以,这是我在作业中提出的一个问题:

编写一个函数,majority(a),返回 a 中至少出现 len(a)//2 + 1 次的值。如果 a 中不存在这样的元素,则该函数返回 None。

作业中的想法是想出尽可能最快的方法。

我的想法是保留一个字典,其中包含每个元素的计数,然后循环遍历字典以查看是否有任何元素的计数为 len(a)//2 +1。

但这似乎效果不太好。有人可以给我一个更好的解决方案并向我解释吗?出于某种原因,这让我发疯。

这是我结构不良的代码:

numTimes = dict()

target = (len(a)//2)+1
for i in range(0, len(a)):
numTimes[str(a[i])] += 1

for k, v in numTimes.iteritems():
if v==str(target):
return v

return None

顺便说一句,让我发疯的是,当我尝试添加新的字典元素时出现了一个关键错误,尽管这与问题无关。

最佳答案

我会使用Counter from collections图书馆。它是 dict 的子类。

from collections import Counter

def majority(iterable):
c = Counter(iterable)
value, count = c.most_common(1)[0]
target = (len(iterable)//2) + 1
if (count >= target):
return value
else:
return None

关于python - 查找列表中的最大元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20136398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com