如何从最常用和最下面的顺序找到列表中六个最常用的单词

问题描述

我需要这样的清单

numbers = [1,1,6,3,2,4,5]

要做到这一点:

[1,5]

不知道如何用python写代码,谁能帮忙

解决方法

内置的 Counter 模块可以帮助解决这个问题:https://docs.python.org/3/library/collections.html#collections.Counter.most_common

from collections import Counter

nums_and_freqs = Counter(numbers).most_common(6)
print([num for num,_ in nums_and_freqs])
,
> [k for k,c in sorted([(k,len(list(it))) for k,it in groupby(sorted(a))],key=lambda x: x[1],reverse=True)]

[1,6,3,2,4,5]

对key进行排序和分组,然后按count计数和排序,最后只提取key。

,

简单:

numbers2 = []
for x in numbers :
    if not x in numbers :
        numbers2.append(x)
,

如果你想要一个列表是唯一的,并且从最常见到最不常见的排序:

numbers = [1,5,5]
from collections import Counter 

>>> [t[0] for t in sorted(Counter(numbers).items(),key=lambda t: -t[1])]
[5,1]

如果您只希望列表唯一但按顺序保留:

numbers = [1,1,5]

>>> list({}.fromkeys(numbers).keys())
[1,5]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...