1.sorted()和sort()
區別:sort是列表的方法,而sorted()是一個內置函數,sorted得到的結果會產生一個新的被排序的變量,之前的變量是不變的,所以元組排序甚至可以用sorted(元組),因為元組不可變可以用sorted排序得到新的元組
如果是列表的話就可以直接用sort方法排序了
2.sort()指定排序規則
比如:students.sort(key=lambda student:student["age"])
這表示指定按照student的age進排序。匿名函數作為參數。找到排序規則,這里的排序規則要求就是一個函數類型的參數
students=[
{"name":"Alex","age":12,"height":175},
{"name":"Jerry","age":18,"height":172},
{"name":"Bob","age":22,"height":180},
{"name":"Tom","age":14,"height":166}
]
students.sort(key=lambda student:student["age"])
print(students)
#實現機制,其實和定義一個函數,返回值指定為排序規則。s如果打印出來其實就是每一個元素和lambda中的student是一個意思
def foo(s):
return s["height"]
students.sort(key=foo)
print(students)
--------------------------------------------------------------------------------
[{'name': 'Alex', 'age': 12, 'height': 175}, {'name': 'Tom', 'age': 14, 'height': 166}, {'name': 'Jerry', 'age': 18, 'height': 172}, {'name': 'Bob', 'age': 22, 'height': 180}]
[{'name': 'Tom', 'age': 14, 'height': 166}, {'name': 'Jerry', 'age': 18, 'height': 172}, {'name': 'Alex', 'age': 12, 'height': 175}, {'name': 'Bob', 'age': 22, 'height': 180}]
