Python 3.0+计算模块

2024-07-04 16:45:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个程序来计算最常出现的数字。除非列表中有两个最常出现的数字,如7,7,7,9,9,9,否则这个方法非常有用。为此我在信中写道:

if len(modeList) > 1 and modeList[0] != modeList[1]:
    break

但后来我遇到了其他问题,比如一组7,9,9,9的数字。我该怎么办。下面是我的代码,将计算一个模式。在

^{pr2}$

然后呢

print(modeList)

我们还没有学会柜台,但如果有人可以解释的话,我愿意接受!在


Tags: and方法代码程序列表lenif模式
2条回答

我会用^{}来做这个。如果存在多个模式,则会引发异常。如果您需要处理多个模式(我不清楚是否是这样),您可能希望使用NPE建议的collections.Counter对象。在

我只需要使用^{}来实现:

>>> from collections import Counter
>>> c = Counter([7,9,9,9,9])
>>> max(c.items(), key=lambda x:x[1])[0]
9

这真的很简单。它所做的只是计算每个值在列表中出现的次数,然后选择计数最高的元素。在

相关问题 更多 >

    热门问题