zoukankan      html  css  js  c++  java
  • Python中sort()和sorted()的区别

    1、sort()是可变对象(字典)的方法,无参数无返回值,  sort()会改变可变对象,因此无需返回值。例如:

    list:

    1 >>> a = [4,3,7,8]
    2 >>> a.sort()
    3 >>> a
    4 [3, 4, 7, 8]

    即sort()直接将可变对象的值给改变了。

    或者:

    1 >>> elements=[(2,12,"A"),(1,11,"N"),(1,3,"L"),(2,4,"B")]
    2 >>> elements.sort()
    3 >>> elements
    4 [(1, 3, 'L'), (1, 11, 'N'), (2, 4, 'B'), (2, 12, 'A')]  #elements.sort() 按每个元组的第一个元素排序
    5 >>> 

    2、sorted()是python的内置函数,并不是可变对象(列表、字典)的特有方法,sorted()函数需要一个参数(参数可以是列表、字典、元组、字符串),无论传递什么参数,都将返回一个以列表为容器的返回值,如果是字典将返回键的列表。

    list:

    1 >>> a = [4,3,7,8]
    2 >>> sorted(a)
    3 [3, 4, 7, 8]
    4 >>> a
    5 [4, 3, 7, 8]

    即sorted会返会一个list副本,同时将原来list的值改变了可将这个返回的值赋给其他变量。

    dict:

    1 >>> b = {1:'ab',2:'degg',4:'ght',9:'d'}
    2 >>> sorted(b)
    3 [1, 2, 4, 9]
    4 >>> b
    5 {1: 'ab', 2: 'degg', 4: 'ght', 9: 'd'}

    即sorted(dict)时,是按key排序,同时将key返回成一个列表。

    或者指定排序的条件:

     1 >>> b = {1:'ab',2:'degg',4:'ght',9:'d'}
     2 >>> sorted(b.items(),key=lambda i:i[0])            #指定按字典里面的键排序
     3 [(1, 'ab'), (2, 'degg'), (4, 'ght'), (9, 'd')]   
     4 >>> 
     5 >>> 
     6 >>> sorted(b.items(),key=lambda i:len(i[1]))       #指定按字典里的value长度排序,默认从小到大
     7 [(9, 'd'), (1, 'ab'), (4, 'ght'), (2, 'degg')]
     8 >>> 
     9 >>> 
    10 >>> sorted(b.items(),key=lambda i:len(i[1]),reverse=True)   #指定按字典里的value长度排序,同时进行翻转,即按value的长度从大到小排列
    11 [(2, 'degg'), (4, 'ght'), (1, 'ab'), (9, 'd')]

    过程为:b.iterms()得到字典b的[ (键,值)] 列表,通过key这个参数,指定排序的方式是键 ( [0] ) 还是值( [1] ),reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。

    参考:

    http://www.cnblogs.com/xiao--yao/p/5024542.html

    http://www.cnpythoner.com/post/266.html

  • 相关阅读:
    Ubuntu+Mac使用飞鸽传书iptux进行互通
    Mac下查看端口占用
    Ubuntu查看端口占用情况
    Ubuntu桌面卡死时的处理
    Bluefish
    响应式Spring Cloud初探
    go
    INSERT ... ON DUPLICATE KEY UPDATE产生death lock死锁原理
    现在的Unix时间戳(Unix timestamp)
    Android 一款Loading动画的实现思路
  • 原文地址:https://www.cnblogs.com/nklzj/p/6850910.html
Copyright © 2011-2022 走看看