针对列表元素进行计数的多种方法
- 0 测试数据
- 1 使用第三方模块
- 1.1 借助numpy模块
- 1.2 借助pandas模块
- 2 借助本地collections模块
- 3 仅使用python基础语法进行计数
- 3.1 借助字典数据结构
- 3.2 借助集合数据结构
0 测试数据
# 测试数据
ls = [1,2,3,2,1,2,4,5,4,5,2,5]
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iNzYTNygTYyQzMkFDZiRWNzYzX1ADN1cDMwMzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
1 使用第三方模块
1.1 借助numpy模块
import numpy as np
np.unique(ls,return_counts=True)
输出结果为:
1.2 借助pandas模块
import pandas as pd
pd.Series(ls).value_counts().to_dict()
输出结果为:
2 借助本地collections模块
python中自带的collections模块可以实现很多关于数值的操作运算,比如里面的Counter方法,就可以实现快速计数
#方式三:使用python自带的标准模块
from collections import Counter
c = Counter(ls)
c
c.most_common(2)
dict(c)
输出结果如下:
3 仅使用python基础语法进行计数
3.1 借助字典数据结构
第一种: 核心是借助字典中的
fromkeys()
方法,创建一个各唯一元素对应值为0的字典
#第一种:先创建一个各唯一元素对应值为0的字典
dic = dict.fromkeys(ls,0)
print('初始化的空值字典:',dic)
for k in ls:
dic[k] += 1
print('完成计数后的字典:',dic)
第二种:借助字典的
get()
方法
#①
dic = {}
for k in ls:
dic[k] = dic.get(k,0)+1
print(dic)
# ②
dic = {}
for k in ls:
if k in dic:
dic[k] += 1
else:
dic[k] = 1
print(dic)
输出结果如下
3.2 借助集合数据结构
s = set(ls)
ls = []
for i in s:
ls.append((i,ls.count(i)))
ls