Python学习之sort与sorted

>>> a=[9,8,7,6,5,4,3,2,1]
>>> a.sort()
>>> a
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
>>> b=[9,8,7,6,5,4,3,2,1]
>>> c=sorted(b)
>>> b
[9,8,7,6,5,4,3,2,1]
>>> c
[1, 2, 3, 4, 5, 6, 7, 8, 9]

由以上可知,list.sort()方法会按照升序将列表重新排列,不会保留原列表。

而sorted()会返回副本,原始输入不变。

sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素x,y,如果x应该排在y前面,则返回-1;如果x应排在y后面,则返回1;如果x与y相等,则返回0。

因此,如果要实现倒序排列,只需编写一个reverse_cmp函数:

def reversed_cmp(x, y):
    if x > y:
        return -1
    if x < y:
        return 1
    return 0

如此,调用sorted()并传入reverse_cmp就可以实现倒序排列:

>>> sorted([36, 5, 12, 9, 21], reversed_cmp)
[36, 21, 12, 9, 5]

任务:

对该字符串排序,忽略大小写

输入:[‘bob‘, ‘about‘, ‘Zoo‘, ‘Credit‘]

输出:[‘about‘, ‘bob‘, ‘Credit‘, ‘Zoo‘]

思路:

sorted()对字符串排序时,默认按照ASCII码大小比较,顺序是A,B,C...X,Y,Z...a,b,c...x,y,z

def cmp_ignore_case(s1, s2):
    u1 = s1.upper()
    u2 = s2.upper()
    if u1 < u2:
        return -1
    if u1 > u2:
        return 1
    return 0
print sorted([‘bob‘, ‘about‘, ‘Zoo‘, ‘Credit‘], cmp_ignore_case)

  

时间: 2024-10-13 01:00:01

Python学习之sort与sorted的相关文章

python中的sort、sorted、reverse、reversed详解

python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse()方法 将列表中元素反转排序,比如下面这样 1 2 3 4 >>> x = [1,5,2,3,4] >>> x.reverse() >>> x [4, 3, 2, 5, 1] reverse列表反转排序:是把原列表中的元素顺序从左至右的重新存放,而不会对列表

python排序函数sort()与sorted()区别

sort是容器的函数:sort(cmp=None, key=None, reverse=False) sorted是python的内建函数:sorted(iterable, cmp=None, key=None, reverse=False) 参数解析: cmp:比较函数,比较什么参数由key决定.例如:cmp(e1, e2) 是具有两个参数的比较函数,返回值:负数(e1 < e2):0(e1 == e2):正数( e1 > e2).key:用列表元素的某个属性或函数作为关键字.reverse

python中list.sort()与sorted()的区别

list.sort()和sorted()都是python的内置函数,他们都用来对序列进行排序,区别在于 list.sort()是对列表就地(in-place)排序,返回None:sorted()返回排好序的新列表,原列表不变 list.sort()只适用于列表,sorted()适用于任意可迭代对象 参考链接:Sorting HOW TO 原文地址:https://www.cnblogs.com/zzliu/p/10803320.html

Python学习十五:sorted()

sorted()是Python内置的一个高阶函数,可以实现对list的排序,它还可以接收一个比较函数来实现自定义的排序. 现在有一个list : [36, 5, 12, 9, 21] 我们分别对这个list进行如下操作: 1.对list进行排序,使用sorted直接排序即可: print sorted([36, 5, 12, 9, 21]) 2.对list进行倒序排序,可以自定一个方法: def reversed_cmp(x, y): if x > y: return -1 if x < y:

python中的sort和sorted

共同点 都有三个参数, cmp用户自定义(指定函数),每个元素都会调用,效率没key高 key带一个参数的函数,用来为每个元素提取比较值 reverse=True    翻转 sort sort作用的对象一般是列表 sort直接排序后就改变了自己,不用生成新的对象,所以效率更高 >>> m=[1,2,3,4,5] >>> m.sort(reverse=True >>> m [5, 4, 3, 2, 1] >>> m ['This',

python中的sort、sorted排序

我们通常会遇到对数据库中的数据进行排序的问题,今天学习一下对列表和字典的排序方法. 列表 第一种:内建方法sort sort()对列表排序是永久性的排序. 用法:sort(*, key=None, reverse=False) 注意这个reverse.当reverse为True时,代表反向排列:默认为False,正向排列. 举例: 1 >>> d = ['3', '4', '1', '6', '2', '5'] 2 >>> d.sort() 3 >>>

python list列表sort、sorted、reverse排序

列表排序:sort是修改原列表,sorted提供原列表的一个有序副本 li=[2,1,4,5,0]li.sort() #默认从小到大print li结果:[0, 1, 2, 4, 5] li=[2,1,4,5,0]li.sort(reverse=True) #从大小到print li结果:[5, 4, 2, 1, 0] li=[2,1,4,5,0]new = sorted(li)print new,li结果:[0, 1, 2, 4, 5] [2, 1, 4, 5, 0] li=[2,1,4,5,

sort与sorted的区别

描述 我们需要对List进行排序,Python提供了两个方法对给定的List L进行排序 :         方法1.用对List的成员函数sort进行排序        方法2.用内置函数sorted进行排序(从2.4开始) -------------------------------------------------sorted-------------------------------------------------------- sorted() 函数对所有可迭代的对象进行排序

Python 排序---sort与sorted学习

当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建方法sort() 可以直接对列表进行排序 用法: list.sort(func=None, key=None, reverse=False(or True)) 对于reverse这个bool类型参数,当reverse=False时:为正向排序:当reverse=True时:为方向排序.默认为False. 执行完后会改变原来的list,如果你不需要原来的lis