您的位置:首页 > 编程语言 > Python开发

Python笔记--String、list、dict排序

2016-10-05 16:09 239 查看
对于序列类型的排序一般用到三种方法reverse(), sort(),  sorted()
下面分别介绍这几种方法:


reverse()

用于将序列中元素反转倒序,直接改变list或String

li = [x for x in 'string']
li.reverse()
print li
#['g', 'n', 'i', 'r', 't', 's']


sort()

用于list排序,从小到大,若要求从大到小可在调用一次reverse(),直接改变list

li = [x for x in 'string']
li.sort()
print li
#['g', 'i', 'n', 'r', 's', 't']


sorted()

不仅能用于list,还能用于dict排序。返回排序后的list

sorted(iterable, cmp=None, key=None, reverse=False)

把iterable中的items进行排序之后,返回一个新的列表,原来的iterable没有任何改变

1) iterable:所有的序列类型

2) cmp: 指定一个定制的比较函数 def cmp(a,b) return a-b

3)key:指定一个接收一个参数的比较函数,与cmp功能相同

4)reverse:是一个布尔值。如果设置为True,列表元素将被降序排列,默认为升序排列。

一般使用key,用系统lambda作比较函数

adict = {'name':1,'aex':0,'goal':13,'jar':20}
'''按字典value值排序'''
ls = sorted(adict.items(),key = lambda x:x[1],reverse=True)
print ls
#[('jar', 20), ('goal', 13), ('name', 1), ('aex', 0)]
'''按字典的key值排序'''
ls = sorted(adict.items(),key = lambda x:x[0],reverse=True)
print ls
#[('name', 1), ('jar', 20), ('goal', 13), ('aex', 0)]


其中x表示列表中的元素,x[0]即第一个元素key,x[1]即第二个元素value.(adict.items() : [(‘aex’, 0), (‘jar’, 20), (‘name’, 1), (‘goal’, 13)])

当然对key排序还可以dict.keys()拿到列表排序,在通过.get(key)来对应顺序。但对value值排序只有这一种。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python