Python学习笔记(四)sorted()函数

原创 2018年04月17日 15:42:22

Python内置的 sorted()函数可对list进行排序:

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

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

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

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

这样,调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序:

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

sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'])
['Credit', 'Zoo', 'about', 'bob']

'Zoo'排在'about'之前是因为'Z'的ASCII码比'a'小。

任务

对字符串排序时,有时候忽略大小写排序更符合习惯。请利用sorted()高阶函数,实现忽略大小写排序的算法。

输入:['bob', 'about', 'Zoo', 'Credit']
输出:['about', 'bob', 'Credit', 'Zoo']


参考答案

def cmp_ignore_case(s1, s2):
    return cmp(s1.lower(),s2.lower())

print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)

Python sorted() 函数

廖雪峰Python教程 sorted部分笔记 排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个d...
  • bestallen
  • bestallen
  • 2016-06-11 15:08:20
  • 691

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

sort是容器的函数:sort(cmp=None, key=None, reverse=False) sorted是python的内建函数:sorted(iterable, cmp=None, key...
  • zyl1042635242
  • zyl1042635242
  • 2015-01-25 16:58:23
  • 8098

python sorted()函数cmp,key,reverse参数详解

点击打开链接 Python帮助文档中对sorted方法的讲解: sorted(iterable[,cmp,[,key[,reverse=True]]]) 作用:返回一个经过排序的列表。 第...
  • whw1874
  • whw1874
  • 2015-11-03 15:04:12
  • 5587

Python的sort函数和sorted、lambda和cmp

1、sort和sorted 我们需要对List进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序 方法2.用built-in...
  • u014798502
  • u014798502
  • 2017-10-05 16:24:46
  • 560

Python的基本知识及sorted

1. 简介     sorted的派排序功能真强大,从前一直使用C++、Java以为其功能很强大了,但与Python一比,真的要差一些。 2. 函数定义      sorted(iterable, c...
  • MyArrow
  • MyArrow
  • 2016-04-20 13:52:21
  • 10958

Python-sorted与sort,以及模拟内置函数sorted()

比较python中sorted与sort的区别,以及模拟内置函数sorted()
  • virusos
  • virusos
  • 2016-05-01 16:08:51
  • 600

Python3中的sorted函数

参照http://blog.csdn.net/lanchunhui/article/details/50959390中的一些说法和例子。 sorted() 函数接口: >>> help...
  • zhang_xiaomeng
  • zhang_xiaomeng
  • 2017-05-11 16:35:42
  • 456

关于python中的sorted函数中的key问题

python中使用字典进行排序时,有时会用到value进行排序。绝大多数人会使用如下的方法: dic={……} sorted(dic.items(),lambda item:item[1]) 注...
  • qq_38564091
  • qq_38564091
  • 2017-10-05 13:57:55
  • 95

python3 sort sorted 函数应用

python3 sorted取消了对cmp的支持。 python3 帮助文档: sorted(iterable,key=None,reverse=False) key接受一个函数,这个函数只接...
  • u010069176
  • u010069176
  • 2016-07-13 21:59:07
  • 11233

Python3中sorted函数没有cmp关键字

Python3中sorted函数没有cmp关键字Python3中去除了cmp内置函数,同时sorted等函数也去除了cmp关键字,添加key关键字 cmp函数到key函数的转换为functools....
  • robin912
  • robin912
  • 2015-04-15 09:26:34
  • 1501
收藏助手
不良信息举报
您举报文章:Python学习笔记(四)sorted()函数
举报原因:
原因补充:

(最多只允许输入30个字)