廖雪峰的Python—sorted

来源:互联网 发布:ubuntu搜狗输入法安装 编辑:程序博客网 时间:2024/05/27 00:49

字符串的比较的过程必须通过函数抽象出来。通常规定,对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1,这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。

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

一、 sorted

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

二、reversed_cmp()函数和 cmp_ignore_case()函数

前者可以实现倒序输出比较,后者可以实现忽略大小写。

例题1:倒序排列[36,5,12,9,21]

def reversed_cmp(x,y):if x > y:return -1if x < y:return 1return 0s = sorted([36,5,12,9,21],reversed_cmp)print s [36, 21, 12, 9, 5]

例题2:

#!/usr/bin/env python#-*- coding: utf-8 -*-def cmp_ignore_case(s1,s2):u1 = s1.upper()u2 = s2.upper()if u1 < u2:return -1 if u1 < u2:return 1return 0 s = sorted(['bob', 'about', 'Zoo', 'Credit'],cmp_ignore_case)print s ['about', 'bob', 'Credit', 'Zoo']

(注:reversed 反转; cmp 比较)

2017年6月9日18:10:39


原创粉丝点击