【问题标题】:How do I find the mode of a list or tuple without the frequency?如何找到没有频率的列表或元组的模式?
【发布时间】:2014-01-29 14:51:16
【问题描述】:

我试图在元组中找到出现次数最多的数字并将该值分配给变量。我尝试了以下代码,但它给了我频率和模式,当我只需要模式时。

from collections import Counter
self.mode_counter = Counter(self.numbers)
self.mode = self.mode_counter.most_common(1)

print self.mode

有没有办法使用 Counter 将模式分配给 self.mode?

【问题讨论】:

  • 这里有一个类似问题的答案和有趣的解决方案:link

标签: python collections counter mode


【解决方案1】:

只需解压most_common的返回值即可。

[(mode, _)] = mode_counter.most_common(1)

【讨论】:

  • 为什么是左侧的[]?
  • 一开始也难倒我。结果是一个元组列表。
  • @JakobBowyer print mode_counter.most_common() 看看直觉。
  • 可爱。下次会记得的
【解决方案2】:

most_common(1) 返回一个包含 1 个元组的列表。

你有两种可能:

使用 self.mode, _ = self.mode_counter.most_common(1)[0] 丢弃第二个值

使用self.mode = self.mode_counter.most_common(1)[0][0] 只获取第一个值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 2015-12-16
    • 2020-04-12
    • 1970-01-01
    • 2013-10-05
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多