📅  最后修改于: 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提供了简单而强大的方法来查找元组列表中的元素频率。