加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Python3 如何统计序列中元素出现的频率

发布时间:2021-05-21 04:55:42 所属栏目:大数据 来源: https://blog.csdn.net/yilovex
导读:#!/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# 也可以使用字典 fromk
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

from random import randint

data = [randint(0,20) for _ in range(30)]

1. 迭代

'''第一种方法'''
# 先将列表转化为字典,重复的键保留一个,初始化值为0
d = {}
for i in data:
    d[i] = 0

# 也可以使用字典 fromkeys() 函数
# 以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值
# d = dict.fromkeys(data,0)

# 初始化完成后再对列表进行迭代,当出现一个重复的键对其加1
for i in data:
    d[i] += 1
print(d)
    
'''第二种方法'''
# 使用字典 get() 函数返回指定键的值,如果值不在字典中返回默认值
d2 = {}
for i in data:
    d2[i] = d2.get(i,0) + 1
print(d2)

2. 使用标准库中的 collections.Counter 统计元素出现的频率

from collections import Counter

d3 = 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)]

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读