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)]的排序

  • 相关阅读:
    第16周作业
    第15周作业
    迟到的第14周作业
    第13次作业集
    软件工程结课总结
    第13次作业
    第12次作业
    第11次作业--字符串的处理
    第10次作业(2)
    第十次作业
  • 原文地址:https://www.cnblogs.com/ltb6w/p/10923589.html
Copyright © 2011-2022 走看看