直接對list本身排序
>>> l = [3, 2, 5, 4, 1] >>> l.sort() >>> l [1, 2, 3, 4, 5] >>> l.sort(reverse=True) >>> l [5, 4, 3, 2, 1]
不動到原始順序
>>> l = [3, 5, 4] >>> sorted(l) [3, 4, 5] >>> l [3, 5, 4]根據element的運算結果
>>> l = ["tom", "Michael", "jenny"] >>> l.sort(key=str.lower) >>> l ['jenny', 'Michael', 'tom']
Dictionary
Dict本身是無序的,所以只能在輸出時做排序
>>> d = {"b": 1, "a": 3, "c": 2}
>>> d
{'a': 3, 'c': 2, 'b': 1}
>>> sorted(d)
['a', 'b', 'c']
>>> for key in sorted(d):
... "%s: %d" % (key, d[key])
...
'a: 3'
'b: 1'
'c: 2'
Dict in List
List.sort() 內的 key 是排序的依據,可以是 element 的屬性或是 function 運算後的結果
By function
>>> l = [{"id": 3, "name": "john"}, {"id": 2, "name": "brandon"}, {"id": 1, "name": "susan"}]
>>> l
[{'id': 3, 'name': 'john'}, {'id': 2, 'name': 'brandon'}, {'id': 1, 'name': 'susan'}]
>>> def my_func(d):
... return d['id']
...
>>> l.sort(key=my_func)
>>> l
[{'id': 1, 'name': 'susan'}, {'id': 2, 'name': 'brandon'}, {'id': 3, 'name': 'john'}]
簡寫,use in-line function
>>> l.sort(key=lambda d:d['id'])
>>> l
[{'id': 1, 'name': 'susan'}, {'id': 2, 'name': 'brandon'}, {'id': 3, 'name': 'john'}]
>>> l.sort(key=lambda d:d['name'])
>>> l
[{'id': 2, 'name': 'brandon'}, {'id': 3, 'name': 'john'}, {'id': 1, 'name': 'susan'}]
參考資料
HowTo/Sorting - PythonInfo Wiki

網誌管理員已經移除這則留言。
回覆刪除14104BD3F6
回覆刪除Takipçi Satın Al
Footer Link Satın Al
Para Kazandıran Oyunlar
3D Car Parking Para Kodu
Hay Day Elmas Kodu
3D527F12
回覆刪除Gemlik
Körfez
Tatvan
Arsuz
Serdivan
Döşemealtı
Bağlar
Ayvalık
Etlik