Python - 其他列表中元素的频率

pythonserver side programmingprogramming更新于 2023/12/29 20:37:00

元素的频率由两个不同的列表组成,其中一个列表定义唯一元素,另一个列表定义相同元素相对于第一个列表的重复次数。然后使用字典中的某些条件和操作来设置由键表示的第一个列表的每个元素,而值对将通过计算第二个列表中关键元素的总重复次数来表示。在 Python 中,我们有一些内置函数,例如 Counter()、count()、defaultdict(),并且 unique() 将用于解决来自其他列表的元素的频率。

让我们举个例子。

给定两个列表,

lst_1 = [1, 2, 3, 4]

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

最终结果变为 {1: 3, 2: 4, 3: 1, 4: 5

语法

示例中使用了以下语法

Counter()

内置方法Counter() 是字典的一个子类,用于跟踪给定列表中存在的相同项目的数量。

count()

内置方法 count() 接受单个参数作为输入,以返回特定列表中存在的项目数量。

defaultdict()

defaultdict() 是 Python 中的一个内置函数,可自动生成键以及默认值对。此函数有助于处理字典中缺失的键。

unique()

unique() 是 Python 中的内置函数,它将唯一元素作为排序数组返回。

使用 Counter()

在下面的示例中,我们将通过提及库集合并导入名为 Counter 的模块来启动程序,该模块将用于计算元素的频率。然后创建两个列表以存储在相应的变量中,即 l1 和 l2。接下来,使用内置函数 Counter(),它接受第二个列表作为参数来计算键的重复次数并将其存储在变量 cnt 中。然后初始化变量 res - 使用将变量 i 设置为 key 的字典理解并遍历列表 l1 以获取元素 w.r.t 到 l2 的总匹配计数并将其存储在变量 res 中。最后,我们在变量 res 的帮助下打印结果。

示例

from collections import Counter
# 创建列表
l1 = [40, 60, 80, 90]
l2 = [40, 60, 60, 5, 80, 10, 40, 90, 80, 10, 1]
cnt = Counter(l2)
res = {i: cnt[i] for i in l1}
print("关键元素的结果频率:\n", res)

输出

关键元素的结果频率:
{40: 2, 60: 2, 80: 2, 90: 1}

使用循环和字典

在下面的例子中,通过创建两个不同的列表来启动程序。然后使用空字典来存储程序的最终输出。接下来,使用 for 循环遍历第一个列表,并通过使用内置函数 count() 对元素进行计数,将条件设置为第一个元素,这相当于第二个列表。最后打印结果。

示例

l1 = [40, 60, 80, 90]
l2 = [40, 60, 60, 5, 80, 10, 40, 90, 80, 10, 1]
# 空字典,用于存储最终输出
res = {}
for i in l1:
    res[i] = l2.count(i)
print("关键元素的结果频率:\n", res)

输出

关键元素的结果频率:
{40: 2, 60: 2, 80: 2, 90: 1}

使用 defaultdict() 函数

在在以下示例中,程序使用集合库并导入模块 defaultdict。然后创建两个列表以存储在相应的变量中。然后使用内置函数 defaultdict(),如果列表的第一个元素与列表的第二个元素不匹配,则负责处理丢失的键并将其存储在变量 count 中。接下来,使用 for 循环遍历列表的第二个元素并使用 += 运算符加 1。移动到使用字典将第一个元素列表设置为键,将第二个元素设置为计数器。最后,显示结果。

示例

from collections import defaultdict
# 创建列表
l1 = [40, 60, 80, 90]
l2 = [40, 60, 60, 5, 80, 10, 40, 90, 80, 10, 1]
# 设置元素频率的条件
count = defaultdict(int)
for i in l2:
    count[i] += 1
# 使用字典
res = {i: count[i] for i in l1}
# 显示结果
print("关键元素的结果频率:\n", res)

输出

关键元素的结果频率:
 {40: 2, 60: 2, 80: 2, 90: 1}

使用 numpy 库和 unique() 函数

在下面的示例中,程序使用必要的条件(例如 numpy 库)和两个不同的列表来计算元素的频率。接下来,使用内置函数 unique() 返回唯一元素作为排序结果并将其存储在两个不同的变量中。现在使用字典推导式,通过使用内置函数 where() 和 unique() 设置元素频率的操作。最后,它会显示结果。

示例

import numpy as np
# 创建列表
l1 = [40, 60, 80, 90]
l2 = [40, 60, 60, 5, 80, 10, 40, 90, 80, 10, 1]
# 设置每个元素的唯一计数
unique_l1, counts_l1 = np.unique(l2, return_counts=True)
res = {i: counts_l1[np.where(unique_l1 == i)][0] for i in l1}
# 显示输出
print("关键元素的结果频率:\n", res)

输出

关键元素的结果频率:
{40:2,60:2,80:2,90:1}

结论

元素的频率是指在给定的输入列表或数据集中出现的元素的数量。频率可以通过计算列表中出现的次数来确定。有各种内置函数可用,例如unique()、where()、defaultdict()等,可用于解决特定条件和操作。这种类型的程序适用于一些应用,例如文本挖掘、市场研究、质量控制等。


相关文章