📜  按 Python 中出现的频率排序 (1)

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

按 Python 中出现的频率排序

在 Python 中,我们经常需要对数据进行计数和排序。本文将介绍如何使用 Python 中的内置函数和模块来实现按出现频率排序的功能。

使用 Counter 函数

Python 中的 Counter 函数可以帮助我们快速统计列表中每个元素出现的频率。下面是一个使用 Counter 函数的例子:

from collections import Counter

lst = ['apple', 'banana', 'apple', 'cherry', 'cherry', 'cherry']
counter_dict = Counter(lst)
print(counter_dict)

输出为:

Counter({'cherry': 3, 'apple': 2, 'banana': 1})

Counter 函数返回的是一个字典,其中键为列表中出现的元素,值为对应元素出现的次数。我们可以使用 dict.items() 方法将其转换为列表,然后使用 sorted 函数按值进行排序,最后再将其转换回字典。

sorted_dict = dict(sorted(counter_dict.items(), key=lambda x: x[1], reverse=True))
print(sorted_dict)

输出为:

{'cherry': 3, 'apple': 2, 'banana': 1}

在上面的例子中,我们使用了 sorted 函数的 key 参数来指定按值排序,并使用 reverse 参数来指定降序排列。

使用 defaultdict 和 lambda 函数

除了使用 Counter 函数外,我们还可以使用 defaultdict 和 lambda 函数来实现按频率排序的功能。

from collections import defaultdict

lst = ['apple', 'banana', 'apple', 'cherry', 'cherry', 'cherry']
counter_dict = defaultdict(int)
for element in lst:
    counter_dict[element] += 1

sorted_dict = dict(sorted(counter_dict.items(), key=lambda x: x[1], reverse=True))
print(sorted_dict)

输出与前面的例子相同。

在上面的例子中,我们使用了 defaultdict 和 int 函数来创建一个默认值为 0 的字典。然后遍历列表中的元素并逐个增加计数器的值。

最后,我们使用 sorted 函数按值对字典进行排序,然后将其转换为普通的字典类型。

总结

本文详细介绍了 Python 中如何按出现频率排序。我们介绍了两种方法:使用 Counter 函数和使用 defaultdict 和 lambda 函数。这些方法可以轻松地对列表中的元素进行计数和排序。