zoukankan      html  css  js  c++  java
  • Python对字典分别按键(key)和值(value)进行排序

    使用sorted函数进行排序


    sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数;
    其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等
    key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序,
    reverse=false时则是顺序,默认时reverse=false。

    初始化字典
    dict_data={6:9,10:5,3:11,8:2,7:6}

    1、对字典按键(key)进行排序

    对字典按键(key)进行排序(默认由小到大)
    test_data_0=sorted(dict_data.keys())

    输出结果
    print(test_data_0) #[3, 6, 7, 8, 10]

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

    输出结果
    print(test_data_1) # [(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]

    2、对字典按值(value)进行排序

    #对字典按值(value)进行排序(默认由小到大)
    test_data_2=sorted(dict_data.items(),key=lambda x:x[1])

    #输出结果
    print(test_data_2) #[('8', 2), ('10', 5), ('7', 6), ('6', 9), ('3', 11)]

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

    #输出结果
    print(test_data_3) #[('3', 11), ('6', 9), ('7', 6), ('10', 5), ('8', 2)]

    方法二:

    import operator

    #初始化字典

    dict_data={6:9,10:5,3:11,8:2,7:6}



    #按键(key)进行排序
    test_data_4=sorted(dict_data.items(),key=operator.itemgetter(0))
    test_data_5=sorted(dict_data.items(),key=operator.itemgetter(0),reverse=True)

    print(test_data_4) #[(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]
    print(test_data_5) #[(10, 5), (8, 2), (7, 6), (6, 9), (3, 11)]



    #按值(value)进行排序

    test_data_6=sorted(dict_data.items(),key=operator.itemgetter(1))

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

    print(test_data_6) #[(8, 2), (10, 5), (7, 6), (6, 9), (3, 11)]

    print(test_data_7) #[(3, 11), (6, 9), (7, 6), (10, 5), (8, 2)]

    demo:

    现有字典d={'a':24, 'b':32, "c":12}请分别按字典只中的key、value排序?

    sorted(iterable, key, reverse) 三个参数,iterable是可迭代对象,key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是正序, 默认reverse=False.

    按key排序(只是输出的key值的排序列表):

    sorted(d.keys(), reverse=True/False)

    按value排序(只是输出的value值的排序列表):

    sorted(d.values(), reverse=True/False)

    sorted函数返回值是list,上述两种也可以用于提取key或value的列表

    按key:value中的key排序:

    sorted(d.items(),key=lambda item:item[0], reverse=True/False) 输出[(key,value), (key,value)]的排序

    按key:value中的value排序排序:

    sorted(d.items(),key=lambda item:item[1], reverse=True/False) 输出[(key,value), (key,value)]的排序

  • 相关阅读:
    SP笔记:交叉实现七行并成一行
    HTML tag 学习
    操作哈希表
    Efficient bipedal robots based on passivedynamic walkers
    Pushing People Around
    ZEROMOMENT PONTTHIRTY FIVE YEARS OF ITS LIFE

    Active Learning for RealTime Motion Controllers
    Accelerometerbased User Interfaces for the Control of a Physically Simulated Character
    Dynamic Response for Motion Capture Animation
  • 原文地址:https://www.cnblogs.com/ltb6w/p/10923589.html
Copyright © 2011-2022 走看看