zoukankan      html  css  js  c++  java
  • 关于字典排序

    1.字典的键值是没有顺序的,所以无法像列表和元组一样通过索引来访问元素。

    现在有个方法可以让字典记录条目添加的顺序:用到OrderedDict

    from collections import OrderedDict

    OrderedDict是个dict的子类,所以可以像dict一样引用它,同时它又增加了对添加顺序的记录。

    d=OrderedDict()相当于d={}创建了一个有记录功能的指针
    2.对字典的键值排序
    对键:

    好像只能出来一个键的列表

    对值:c={"wangshen":100,"linzhitao":98,"qiaoubsi":88}

    sd=sorted(c.items(),key=lambda x:x[1])

    od=OrderedDict(sd)

    print od

    按“值”排序就是根据字典的值进行排序,可以使用内置的sorted()函数。

     sorted(iterable[, cmp[, key[, reverse]]])
    • iterable:是可迭代类型类型;

    • cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;

    • key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;

    • reverse:排序规则. reverse = True 或者 reverse = False,有默认值,默认为升序排列(False)。

    返回值:是一个经过排序的可迭代类型,与iterable一样。一般来说,cmp和key可以使用lambda表达式。

    如果对字典进行排序,常用的形式如下:

    sorted(dict.items(), key=lambda e:e[1], reverse=True)

    其中,e表示dict.items()中的一个元素,e[0]表示按键排序,e[1]则表示按值排序。reverse=False可以省略,默认为升序排列。

    说明:字典的items()函数返回的是一个列表,列表的每个元素是一个键和值组成的元组。因此,sorted(dict.items(), key=lambda e:e[1], reverse=True)返回的值同样是由元组组成的列表。(所以要用OrderedDict()来把它重新变回字典,注意不能用dict()变,因为这样变出来的没有顺序)

  • 相关阅读:
    面试官:反射都不会,还敢说自己会Java?
    nginx 开启x-forward
    不写代码,从0到1教你制作炫酷可视化大屏
    5G 专网部署方案
    Mac运行pygame一直显示空白屏幕
    数据库大咖解读“新基建”,墨天轮四重好礼相送!
    Oracle 20c 新特性:自动的区域图
    4000多人全靠报表自动化,效率提高60%,这套数据平台方法论真强
    EBS开发性能优化之查找需要优化的程序
    EBS开发性能优化之SQL语句优化
  • 原文地址:https://www.cnblogs.com/wangshen31/p/6528050.html
Copyright © 2011-2022 走看看