標籤:程式設計語言 Python
# 這是學習廖雪峰老師python教程的學習筆記
1、概覽
Python內建的sorted()函數可以對list進行排序。
sorted()函數也是一個高階函數,它可以接收一個key函數來實現自訂的排序,key指定的函數將作用於list的每一個元素上,並根據key函數返回的結果進行排序
# 直接排序
>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]
# 接受key函數排序
>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]
# 按 字母表 順序排序
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower) # sorted預設是按 ASCII 碼排序,而 Z>a ,所以需要加key函數
['about', 'bob', 'Credit', 'Zoo']
2、例子
1、假設我們用一組tuple表示學生名字和成績:L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
請用sorted()對上述列表分別按名字排序:
# -*- coding: utf-8 -*-
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
#按姓名排序
def by_name(t):
return t[0]
#按成績排序。-t[1],則分數越高,加上負號就越小,就越靠前
def by_score(t):
return -t[1]
#測試
L2 = sorted(L, key=by_name)
print(L2)
#按姓名排序
[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
#按成績排序
[('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]
Python學習筆記__4.1.3章 sorted