📜  Python|在元组列表中查找频率(1)

📅  最后修改于: 2023-12-03 14:46:27.389000             🧑  作者: Mango

在元组列表中查找频率

在Python中,我们经常需要在元组列表中查找元素的频率。下面是一个例子:

lst = [('a', 1), ('b', 2), ('c', 3), ('a', 2)]

d = {}
for tpl in lst:
    if tpl[0] not in d:
        d[tpl[0]] = tpl[1]
    else:
        d[tpl[0]] += tpl[1]

print(d)  # {'a': 3, 'b': 2, 'c': 3}

这个例子中,我们首先定义了一个元组列表lst,其中元组包含一个字符和一个整数。然后我们创建了一个空字典d,用于存储每个字符的总出现次数。接下来,我们遍历元组列表中的每个元组tpl,如果tpl[0]不在字典中,则将tpl[0]添加到字典中,并将tpl[1]赋值给它。否则,将tpl[1]添加到d[tpl[0]]中。最后,我们打印字典以显示每个字符的总出现次数。

如果我们要查找元组列表中每个元组中第一个元素的频率,我们可以使用collections模块中的Counter函数。下面是例子:

from collections import Counter

lst = [('a', 1), ('b', 2), ('c', 3), ('a', 2)]

d = Counter(tpl[0] for tpl in lst)

print(d)  # Counter({'a': 2, 'b': 1, 'c': 1})

在这个例子中,我们首先从collections模块导入Counter函数。然后我们定义了元组列表lst,其中元组包含一个字符和一个整数。接下来,我们使用Counter函数和一个生成器表达式来计算每个元组中第一个元素的频率。最后,我们打印Counter对象以显示每个字符的出现次数。

无论是使用字典还是collections.Counter函数,Python提供了简单而强大的方法来查找元组列表中的元素频率。