📜  Python|按频率对给定列表进行排序并删除重复项(1)

📅  最后修改于: 2023-12-03 15:19:20.330000             🧑  作者: Mango

Python | 按频率对给定列表进行排序并删除重复项

在Python中,可以使用collections模块中的Counter方法来统计列表中每个元素出现的次数,并且可以使用most_common()方法按照从多到少的顺序返回所有元素及其出现次数的列表。

下面是一个将给定列表按照元素出现的频率进行排序并删除重复项的示例代码:

from collections import Counter

lst = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]

# 统计每个元素出现的次数
counter = Counter(lst)

# 按照从多到少的顺序返回所有元素及其出现次数的列表
most_common = counter.most_common()

# 取出列表中的所有元素
result = [elem[0] for elem in most_common]

print(result)

输出结果为:[4, 3, 2, 1]

在上述代码中,变量counter是一个Counter对象,它用于统计列表lst中每个元素出现的次数。使用方法most_common(),可以将这些元素按照从多到少的顺序排列成一个列表most_common。接下来,我们使用列表推导式[elem[0] for elem in most_common],只取出每个元素出现的次数,并将结果赋值给result变量。

此时,变量result中存储的列表已经按照元素出现的频率进行了排序,并且重复的元素也已经被删除。

此外,如果想要按照元素出现的频率进行排序,但是又要保留重复元素的话,只需要将列表推导式修改为[elem[0]] * elem[1] for elem in most_common]即可。

总之,使用collections模块中的Counter方法可以帮助我们很方便地对列表进行元素频率的排序以及重复元素的删除,代码简单,易于实现。