• python笔记17-字典如何按value排序


    前言

    面试题:如何统计数组中出现次数最多的数据,按出现次数由大到小排序
    这个排序看似简单,涉及到的基础知识点还是很多的,真正写起来并不容易

    备注:本篇是以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)
    

    python自动化交流 QQ群:779429633

  • 相关阅读:
    20181113-2 每周例行报告
    20181030-4 每周例行报告
    20180925-5 代码规范,结对要求
    20181023-3 每周例行报告
    20181016-10 每周例行报告
    PSP总结报告
    作业要求 20181204-1 每周例行报告
    公开感谢
    附加作业 软件工程原则的应用实例分析
    作业要求 20181127-2每周例行报告
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/9147052.html
Copyright © 2020-2023  润新知