博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python笔记17-字典如何按value排序
阅读量:6974 次
发布时间:2019-06-27

本文共 901 字,大约阅读时间需要 3 分钟。

前言

面试题:如何统计数组中出现次数最多的数据,按出现次数由大到小排序

这个排序看似简单,涉及到的基础知识点还是很多的,真正写起来并不容易

备注:本篇是以python3.6讲解的,python2会多一个cmp参数,cmp函数在python3上已经丢弃了cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

保存数据

1.首先应该提出队列里面有多少个数据,做去重处理,去重最快的办法计算用到set集合了

a = ["a", "b", "a", "c", "a", "c", "b", "d", "e", "c", "a", "c"]# set集合去重duixiang = set(a)  # 先去重,取出计数对象print(duixiang)

2.然后计算每个对象再list里面出现的次数,可以保存为字典格式,一一对应

# 保存为dict,一一对应d = {}for i in duixiang:    d[i] = a.count(i)

字典按value排序

1.保存为字典后,按字典的value值大小排序,这个才是本题的难点,由于dict是无序的,所以只能用list去排序,把dict的key和value保存为tuplue对象

# 对字典按value排序a = sorted(d.items(), key=lambda x: x[1], reverse=True)print(a)

参考代码:

# coding:utf-8# 作者:上海-悠悠a = ["a", "b", "a", "c", "a", "c", "b", "d", "e", "c", "a", "c"]# set集合去重duixiang = set(a)  # 先去重,取出计数对象# 保存为dict,一一对应d = {}for i in duixiang:    d[i] = a.count(i)# 对字典按value排序a = sorted(d.items(), key=lambda x: x[1], reverse=True)print(a)

1070438-20180606200554845-1933686562.png

转载地址:http://foesl.baihongyu.com/

你可能感兴趣的文章
2020年我国软件产业收入将突破8万亿元
查看>>
微软为中国政府推出特供版Windows 10,这里有你需要了解的几个事实
查看>>
岗位信息显示英伟达芯片重返苹果Mac电脑
查看>>
Facebook押宝的“聊天机器人”会不会仅是一场泡沫?
查看>>
智慧城市曙光在眼前 实现快速发展发力十要素
查看>>
企业微信入局,移动办公又演化成BAT大战?
查看>>
希捷发布企业级固态硬盘 最高速度可达10GB/s
查看>>
安防监控防雷器选择技巧
查看>>
工作后对单元测试学习的一点总结
查看>>
无线数据传输新纪录达到6Gbps
查看>>
细分差异化,钉钉为何寻求不同CRM厂商合作
查看>>
Linux使用fuser命令找出访问文件系统的进程
查看>>
智能家居联网通信技术谁将一统天下?
查看>>
重庆企业首创ZPLC技术物联网光环境系统
查看>>
《数值分析(原书第2版)》—— 0.1 多项式求值
查看>>
MEMS传感器市场扩容 国产化水平亟待提升
查看>>
ASP.NET Aries 入门开发教程1:框架下载与运行
查看>>
周鸿祎:网络攻击新时代开启 要提高安全意识
查看>>
关于Solaris的9个小技巧
查看>>
网络安全加速推进 高增长引基金布局
查看>>