0
点赞
收藏
分享

微信扫一扫

【python数据处理】针对列表元素进行计数的多种方法


针对列表元素进行计数的多种方法

  • ​​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]

【python数据处理】针对列表元素进行计数的多种方法_unique

1 使用第三方模块

1.1 借助numpy模块

import numpy as np
np.unique(ls,return_counts=True)

输出结果为:

【python数据处理】针对列表元素进行计数的多种方法_python_02

1.2 借助pandas模块

import pandas as pd
pd.Series(ls).value_counts().to_dict()

输出结果为:

【python数据处理】针对列表元素进行计数的多种方法_unique_03

2 借助本地collections模块

python中自带的collections模块可以实现很多关于数值的操作运算,比如里面的Counter方法,就可以实现快速计数

#方式三:使用python自带的标准模块
from collections import Counter
c = Counter(ls)
c

c.most_common(2)

dict(c)

输出结果如下:

【python数据处理】针对列表元素进行计数的多种方法_unique_04

3 仅使用python基础语法进行计数

3.1 借助字典数据结构

第一种: 核心是借助字典中的​​fromkeys()​​方法,创建一个各唯一元素对应值为0的字典

#第一种:先创建一个各唯一元素对应值为0的字典
dic = dict.fromkeys(ls,0)
print('初始化的空值字典:',dic)
for k in ls:
dic[k] += 1
print('完成计数后的字典:',dic)

【python数据处理】针对列表元素进行计数的多种方法_unique_05


第二种:借助字典的​​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)

输出结果如下

【python数据处理】针对列表元素进行计数的多种方法_1024程序员节_06

3.2 借助集合数据结构

s = set(ls)
ls = []
for i in s:
ls.append((i,ls.count(i)))
ls

输出结果为:

【python数据处理】针对列表元素进行计数的多种方法_1024程序员节_07


举报

相关推荐

0 条评论