# 十四、Python的自定义排序 以及两种排序方式

data_list = []
data_list.append({'softname':'1','version':'1.2.2.2'})
data_list.append({'softname':'7','version':'1.2.2.2'})
data_list.append({'softname':'5','version':'1.2.2.2'})
data_list.append({'softname':'2','version':'1.2.2.2'})
data_list.append({'softname':'3','version':'1.2.2.2'})
data_list.append({'softname':'9','version':'1.2.2.2'})
#升序
data_list.sort(key=lambda obj:obj.get('softname'), reverse=False)

print data_list
#[{'softname': '1'}, {'softname': '2'}, {'softname': '3'}, {'softname': '5'}, {'softname': '7'}, {'softname': '9'}]
#降序
data_list.sort(key=lambda obj:obj.get('softname'), reverse=True)
print data_list
#[{'softname': '9'}, {'softname': '7'}, {'softname': '5'}, {'softname': '3'}, {'softname': '2'}, {'softname': '1’}]

list.sort(func=None, key=None, reverse=False)

Python实例：

1

2

3

4

5

6

>>> list = [2,5,8,9,3]

>>> list

[2,5,8,9,3]

>>> list.sort()

>>> list

[2, 3, 5, 8, 9]

Python实例：

1

2

3

4

5

>>> list = [2,5,8,9,3]

>>> list

[2,5,8,9,3]

>>> sorted(list)

[2, 3, 5, 8, 9]

sorted(list)返回1个对象，可以用作表达式。原来的list不变，生成1个新的排好序的list对象。

list.sort() 不会返回对象，改变原本的list。

1

2

3

4

>>>L = [2,3,1,4]

>>>L.sort()

>>>L

>>>[1,2,3,4]

1

2

3

4

>>>L = [2,3,1,4]

>>>L.sort(reverse=True)

>>>L

>>>[4,3,2,1]

1

2

3

4

>>>L = [('b',6),('a',1),('c',3),('d',4)]

>>>L.sort(lambda x,y:cmp(x[1],y[1]))

>>>L

>>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]

1

2

3

4

>>>L = [('b',6),('a',1),('c',3),('d',4)]

>>>L.sort(key=lambda x:x[1])

>>>L

>>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]

1

2

3

4

5

>>>L = [('b',2),('a',1),('c',3),('d',4)]

>>>import operator

>>>L.sort(key=operator.itemgetter(1))

>>>L

>>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

1

2

3

4

5

6

>>>L = [('b',2),('a',1),('c',3),('d',4)]

>>>A = [(x[1],i,x) for i,x in enumerate(L)] #i can confirm the stable sort

>>>A.sort()

>>>L = [s[2] for s in A]

>>>L

>>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

cmp < DSU < key

1

2

3

4

>>>L = [('d',2),('a',4),('b',3),('c',2)]

>>> L.sort(key=lambda x:x[1])

>>> L

>>>[('d', 2), ('c', 2), ('b', 3), ('a', 4)]

1

2

3

4

>>> L = [('d',2),('a',4),('b',3),('c',2)]

>>> L.sort(key=lambda x:(x[1],x[0]))

>>> L

>>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]

1

2

3

4

>>> L = [('d',2),('a',4),('b',3),('c',2)]

>>> L.sort(key=operator.itemgetter(1,0))

>>> L

>>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]

1. 本站所有资源来源于用户上传和网络，如有侵权请邮件联系站长！
2. 分享目的仅供大家学习和交流，您必须在下载后24小时内删除！
3. 不得使用于非法商业用途，不得违反国家法律。否则后果自负！
4. 本站提供的源码、模板、插件等等其他资源，都不包含技术服务请大家谅解！
5. 如有链接无法下载、失效或广告，请联系管理员处理！
6. 本站资源售价只是赞助，收取费用仅维持本站的日常运营所需！
7. 本站源码并不保证全部能正常使用，仅供有技术基础的人学习研究，请谨慎下载
8. 如遇到加密压缩包，请使用WINRAR解压,如遇到无法解压的请联系管理员！