• python字典排序


    1、python 字典按value排序

    yuwen = {'JiaNaiLiang': 60, 'LiXiaoLu': 10, 'TianLaoShi': 44, 'MaSu': 99, 'KongLingHui': 98, 'LiuLaoShi': 77}

    方法一: 排序之后返回的是字典

    d.items()实际上是将d转换为可迭代对象,迭代对象的元素为 ('MaSu', 99), ('KongLingHui', 98), ('LiuLaoShi', 77), ('JiaNaiLiang', 60), ('TianLaoShi', 44), ('LiXiaoLu', 10)),items()方法将字典的元素 转化为了元组,而这里key参数对应的lambda表达式的意思则是选取元组中的第二个元素作为比较参数(如果写作key=lambda x:x[0]的话则是选取第一个元素作为比较对象,也就是key值作为比较对象。lambda x:y中x表示输出参数,y表示lambda 函数的返回值),所以采用这种方法可以对字典的value进行排序。注意排序后的返回值是一个list,而原字典中的名值对被转换为了list中的元组。

    倒序:

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

    正序:

    dict(sorted(yuwen.items(), key=lambda x: x[1])

    结果

    {'MaSu': 99, 'KongLingHui': 98, 'LiuLaoShi': 77, 'JiaNaiLiang': 60, 'TianLaoShi': 44, 'LiXiaoLu': 10}

    不加dict

    [('MaSu', 99), ('KongLingHui', 98), ('LiuLaoShi', 77), ('JiaNaiLiang', 60), ('TianLaoShi', 44), ('LiXiaoLu', 10)]

    方法二:返回是值是列表内嵌套元组

    import operator

    倒序:

    sorted(yuwen.items(),key = operator.itemgetter(1),reverse=True)

    正序:

    sorted(yuwen.items(),key = operator.itemgetter(1))

    结果:

    [('MaSu', 99), ('KongLingHui', 98), ('LiuLaoShi', 77), ('JiaNaiLiang', 60), ('TianLaoShi', 44), ('LiXiaoLu', 10)]

    方法三:yuwen.values()在前面是按value值排序,如果key在前面是按key排序

    f = zip(yuwen.values(),yuwen.keys())
    sorted(f)

    结果:

    [(10, 'LiXiaoLu'), (44, 'TianLaoShi'), (60, 'JiaNaiLiang'), (77, 'LiuLaoShi'), (98, 'KongLingHui'), (99, 'MaSu')]

    2、python 字典按key排序

    方法一:

    倒序:

    sorted(yuwen.items(), key=lambda x: x[0], reverse=True)

    正序:

      sorted(yuwen.items(), key=lambda x: x[0])

    结果:

    [('TianLaoShi', 44), ('MaSu', 99), ('LiuLaoShi', 77), ('LiXiaoLu', 10), ('KongLingHui', 98), ('JiaNaiLiang', 60)]

    方法二:

    print(sorted(yuwen.items(),key = operator.itemgetter(0),reverse=True))

    方法三:

    f=zip(yuwen.keys(),yuwen.values())
    sorted(d)

    3、只排key或value:

      --  dict.keys 排序  

      sorted(yuwen.keys())

      --  dict.keys 返回的是 dict_keys 对象,若需要转换为列表,才可以按列表取值

      list(yuwen.keys())[0] 

      --  dict.values 排序

       sorted(yuwen.values())

      --  dict.values 返回的是 dict_values 对象,若需要转换为列表,才可以取值

      list(yuwen.values())[0]
    上班求生存,下班求发展
  • 相关阅读:
    java之this关键字
    单位转换类UnitUtil2
    重量WeightFormatUtil辅助类
    语音提示辅助类MySoundAlertUtil
    Android 编程下 Touch 事件的分发和消费机制
    switch case语句的用法
    Struts2之环境配置
    CSS属性绘制图形(一)
    jquery $(document).ready() 与window.onload的区别
    Android开发之ActionBar
  • 原文地址:https://www.cnblogs.com/ljf520hj/p/12784551.html
Copyright © 2020-2023  润新知