zoukankan      html  css  js  c++  java
  • python中字典按键、值进行排序

    看到排序,就不禁想起python中的sort和sorted

    sort是列表中的方法,用于对列表进行排序(改变的是原列表,不返回新列表)

    用法: list.sort(key=None,reverse=True) ,参数中reverse默认是False,表示升序,如果设置成True就是降序(注意要首字母要大写)

    sorted是Python的内建函数,用于对可迭代对象进行排序,返回一个新的迭代对象

    用法:sorted(iterable,key=None,reverse=False),参数中iterable是迭代对象,key是用来比较的元素(比如字典可以选择按键或值进行排序),reverse默认False升序,可设置成True降序(注意要首字母要大写)

    对列表进行排序既可以用sort也可以用sorted

    from random import randint
    # sort只能对列表使用,sorted用于所有可迭代对象
    # randint是random模块下的一个函数,可以生成范围内的一个随机数
    list = [randint(1,100) for i in range(10)]
    print('列表排序前:',list ,'地址为:',id(list))
    list1 = list.sort(reverse=True)
    print('用sort降序排序后返回:',list1,'此时原始列表为:',list )
    list2 = sorted(list,reverse=True)
    print('用sorted降序排序后返回:',list2 ,'地址为:',id(list2))
    用sort和sorted对列表进行排序

    运行结果为:

     可以看出用sort返回值是None,用sorted则会返回一个新的列表。如果不用保存原始列表的话,用sort方法节省空间、效率会高一些。

    接下来用sorted对字典进行排序(sort只能用于对列表排序)

    按键排序:

    sorted(dict.items(),key=lambda dict:dict[0],reverse=False)返回的是列表,列表内是根据键(key)排好序的元祖

    sorted(dict,key=lambda dict:dict[0],reverse=False)返回的是列表,列表内是排好序的键(key)

    sorted(dict.keys(),reverse=False)返回的是列表,列表内是排好序的键(key)

    按值排序:

    sorted(dict.items(),key=lambda dict:dict[1],reverse=False)返回的是列表,列表内是根据值(values)排好序的元祖

    sorted(dict.values(),reverse=False)返回的是列表,列表内是排好序的值(values)

    关于lambda匿名函数,可以看https://www.cnblogs.com/xiaocaiqa/p/12469583.html

    如果需要返回一个字典,那么就要对返回的列表进行处理:

  • 相关阅读:
    Java Web表达式注入
    Mysql:The Federated Storage Engine:联合(联盟)存储引擎:【远程连接】服务器引擎
    Mysql:16.11.1 Pluggable Storage Engine Architecture
    Mysql:Server Logs:mysqld服务器的各种日志
    Mysql:InnoDB Table Compression and InnoDB Page Compression:适用于InnoDB的:表压缩 & 页压缩
    Mysql:Redo Log
    kubectl相关指令
    使用alias简化kubectl输入
    使用Minikube运行一个本地单节点Kubernetes集群(阿里云)
    Javascript去掉base64中的回车换行
  • 原文地址:https://www.cnblogs.com/xiaocaiqa/p/12466551.html
Copyright © 2011-2022 走看看