python统计列表中各个元素出现的次数
时间: 2023-06-19 12:06:40 浏览: 78
可以使用 python 内置的 `collections` 模块中的 `Counter` 类来统计列表中各个元素出现的次数。举个例子:
```
from collections import Counter
my_list = [1, 2, 3, 2, 1, 3, 1, 2, 3]
counts = Counter(my_list)
print(counts)
```
输出:
```
Counter({1: 3, 2: 3, 3: 3})
```
可以看到,它会将元素和出现次数封装为一个字典返回。
也可以统计其他类型的数据,例如字符串
```
string = 'hello world'
counts = Counter(string)
print(counts)
```
输出
```
Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
```
如果要获取每个元素出现次数最多的 n 个元素,可以使用 `most_common()` 方法,例如:
```
counts.most_common(2)
```
输出:
```
[(1, 3), (2, 3)]
```
需要注意的是,如果数据量很大,那么在统计前先排序是更加高效的。
如果你的数据类型比较特殊,那么需要额外考虑使用hash_map或者hash_set之类的数据结构。
相关问题
统计元组中各个字符出现的次数
假设元组为 tup,可以使用 Counter 类来统计元组中各个字符出现的次数:
```python
from collections import Counter
tup = ('a', 'b', 'c', 'a', 'b', 'a')
counter = Counter(tup)
print(counter)
```
输出:
```
Counter({'a': 3, 'b': 2, 'c': 1})
```
其中,Counter 返回的是一个字典,键为元组中的元素,值为该元素在元组中出现的次数。
3)统计元组中各个字符出现的次数←
假设我们有一个元组`tup`,可以使用以下代码统计元组中各个字符出现的次数:
```python
# 定义一个元组
tup = ('a', 'b', 'a', 'c', 'd', 'b', 'e', 'a', 'f')
# 使用字典统计各个字符出现的次数
tup_dict = {}
for item in tup:
if item in tup_dict:
tup_dict[item] += 1
else:
tup_dict[item] = 1
# 输出统计结果
for key, value in tup_dict.items():
print(key, ':', value)
```
输出结果如下:
```
a : 3
b : 2
c : 1
d : 1
e : 1
f : 1
```
其中,我们使用了一个字典`tup_dict`来存储各个字符出现的次数,遍历元组中的每个元素,如果该元素在字典中已经存在,则对应计数器加1,否则将其添加到字典中,并将计数器初始化为1。最后,遍历字典,输出各个字符及其出现的次数。