📜  如何获取 python 列表中每个元素的频率 - Python (1)

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

如何获取 Python 列表中每个元素的频率 - Python

在 Python 中,我们通常需要知道一个列表或一个序列中各个元素出现的频率。在本文中,我们将探索获取 Python 列表中每个元素频率的方法。

方法一:使用 Counter 对象

Counter 是 Python 中用于计数的一个类,可以用于表示一个序列中各个元素出现的次数。使用 Counter 类,我们可以快速获取列表中每个元素出现的频率。

from collections import Counter

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

count = Counter(lst)
print(count)

上面的代码将输出:

Counter({1: 3, 2: 2, 3: 2, 4: 2, 5: 1})

其中,Counter 对象的键是列表中的元素,值是该元素在列表中出现的次数。

方法二:使用 numpy 模块

numpy 是 Python 中用于数值计算的一个模块,除了数学计算外,它也包含了用于操作数组和矩阵的函数。使用 numpy,我们可以方便地计算列表中每个元素出现的频率。

import numpy as np

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

freq = np.bincount(lst)
print(freq)

上面的代码将输出:

[0 3 2 2 2 1]

以上输出中,freq 数组的下标表示元素的值,对应的值表示该元素在列表中出现的次数。

方法三:使用字典

使用字典也是一种获取 Python 列表中各个元素频率的方法。我们可以遍历列表中的每个元素,将其作为字典的键,若字典中已存在该键,则将该键对应的值加 1,否则将该键添加到字典中,并将其值设为 1。

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

freq = {}

for i in lst:
    if i in freq:
        freq[i] += 1
    else:
        freq[i] = 1

print(freq)

上面的代码将输出:

{1: 3, 2: 2, 3: 2, 4: 2, 5: 1}
结论

本文介绍了三种获取 Python 列表中各个元素频率的方法:使用 Counter 对象、使用 numpy 模块和使用字典。无论您选择哪种方法,都可以轻松地获取列表中每个元素的出现频率。