python笔记17-字典按value排序
前言
面试题:如何统计数组中出现次数最多的数据,按出现次数由大到小排序
这个排序看似简单,涉及到的基础知识点还是很多的,真正写起来并不容易
保存数据
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)
python自动化全栈课程7月开学,现在开始可以报名了
本期课程截止时间:2018-06-30