针对列表元素进行计数的多种方法
手动反爬虫: 原博地址 https://blog.csdn.net/lys_828/article/details/127484453
知识梳理不易,请尊重劳动成果,文章仅发布在CSDN网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息
0 测试数据
# 测试数据
ls = [1,2,3,2,1,2,4,5,4,5,2,5]
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
输出结果为: