#!/usr/bin/env python3# -*- Coding: UTF-8 -*-from random import randintdata = [randint(0,20) for _ in range(30)]
1. 迭代 '''第一种方法'''# 先将列表转化为字典,重复的键保留一个,初始化值为0d = {}for i in data: d[i] = 0# 也可以使用字典 fromkeys() 函数# 以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值# d = dict.fromkeys(data,0)# 初始化完成后再对列表进行迭代,当出现一个重复的键对其加1for i in data: d[i] += 1print(d) '''第二种方法'''# 使用字典 get() 函数返回指定键的值,如果值不在字典中返回默认值d2 = {}for i in data: d2[i] = d2.get(i,0) + 1print(d2)
2. 使用标准库中的 collections.Counter
统计元素出现的频率 from collections import Counterd3 = Counter(data)print(dict(d3))# most_common(3) 是取出频率最高的3个元素print(d3.most_common(3))
运行结果:
Geek-Mac:Downloads zhangyi$ python3 Nice.py {5: 3,19: 2,20: 1,15: 2,10: 4,3: 2,2: 3,8: 1,1: 4,4: 2,7: 1,18: 1,16: 1,9: 1,6: 1,0: 1}{5: 3,0: 1}[(10,4),(1,(5,3)]
总结 以上是内存溢出为你收集整理的Python3 如何统计序列中元素出现的频率全部内容,希望文章能够帮你解决Python3 如何统计序列中元素出现的频率所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)