直接使用sort()函数
score = [78, 90, 40, 60]
score.sort()
print(score)
### [40, 60, 78, 90]
根据数据中的某一个项排序
students = [{"age": 18, "name": 'jack', "score": 89},
{"age": 15, "name": 'tom', "score": 98},
{"age": 16, "name": 'mike', "score": 98},
{"age": 19, "name": 'jone', "score": 95}]
students.sort(key=lambda student: student['score'])
print(students)
### [{'age': 18, 'name': 'jack', 'score': 89},
### {'age': 19, 'name': 'jone', 'score': 95},
### {'age': 15, 'name': 'tom', 'score': 98},
### {'age': 16, 'name': 'mike', 'score': 98}]
使用自定义的比较函数
在Python2.x中,可以使用cmp函数
students = [{"age": 18, "name": 'jack', "score": 89},
{"age": 15, "name": 'tom', "score": 98},
{"age": 16, "name": 'mike', "score": 98},
{"age": 19, "name": 'jone', "score": 95}]
def compare(a, b):
if a["score"] > b["score"]:
return 1
elif a["score"] < b["score"]:
return -1
else:
return 0
students.sort(cmp=compare)
print(students)
### [{'age': 18, 'name': 'jack', 'score': 89},
### {'age': 19, 'name': 'jone', 'score': 95},
### {'age': 15, 'name': 'tom', 'score': 98},
### {'age': 16, 'name': 'mike', 'score': 98}]
在python3.x中,移除了cmp函数,如果需要自定义比较,需要借用functools模块来完成
import functools
students = [{"age": 18, "name": 'jack', "score": 89},
{"age": 15, "name": 'tom', "score": 98},
{"age": 16, "name": 'mike', "score": 98},
{"age": 19, "name": 'jone', "score": 95}]
def compare(a, b):
if a["score"] > b["score"]:
return 1
elif a["score"] < b["score"]:
return -1
else:
return 0
students.sort(key=functools.cmp_to_key(compare))
print(students)
### [{'age': 18, 'name': 'jack', 'score': 89},
### {'age': 19, 'name': 'jone', 'score': 95},
### {'age': 15, 'name': 'tom', 'score': 98},
### {'age': 16, 'name': 'mike', 'score': 98}]