Sorted排序

1. 

默认Sorted排序,是自小到大的排序(按照ascill值)。

如: L1 = ["Aja","ctime","bBoy","Fjack"]

sorted(L1)

结果为:

["Aja","Fjack","ctime","bBoy"]

 

同样可以按照自大到小进行排序:

In [10]: sorted(L1,reverse=True)
Out[10]: ['ctime', 'bBoy', 'Fjack', 'Aja']

2.  内置函数方法排序

排序可以按照一定的方法进行

如:L1 = [-16,6,-90,100,3,0]  按照绝对值自小到大排序

In [11]: L1 = [-16,6,-90,100,3,0]

In [12]: sorted(L1,key=abs)
Out[12]: [0, 3, 6, -16, -90, 100]

 

3. 对有多个可排序项目的列表进行排序

 S1 = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

按照名字排序:

  方法一:

In [16]: from operator import itemgetter

In [17]:  S1 = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

In [18]: sorted(S1,key=itemgetter(0))
Out[18]: [('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]

  方法二:

In [19]: sorted(S1,key=lambda x:x[0])
Out[19]: [('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]

以此类推,可以按照成绩进行排序等等

      

4. 对字典进行排序

对字典排序,sorted会默认的将字典变为列表或者元组,在按照正常方法进行排序

如:

In [44]: dic1 = {1:"Jack",2:"Alxe",5:"Allen",3:"Bill"}

In [45]: sorted(dic1)
Out[45]: [1, 2, 3, 5]

In [46]: sorted(dic1.items())
Out[46]: [(1, 'Jack'), (2, 'Alxe'), (3, 'Bill'), (5, 'Allen')]

In [47]: sorted(dic1.values())
Out[47]: ['Allen', 'Alxe', 'Bill', 'Jack']

In [48]: dic2 = sorted(dic1.items(),key=lambda x:x[1],reverse=True)

 

posted @ 2016-08-22 15:09  loyfee  阅读(291)  评论(0编辑  收藏  举报