【Python實踐-10】用sorted()對列表排序


 1 #按名字排序
 2 l2= [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
 3 def by_name(t):
 4     return t[0]
 5 l2=sorted(l2,key=by_name)
 6 print(l2)
 7 #再按成績從高到低排序
 8 def by_score(t):
 9     return 100-t[1]
10 l2=sorted(l2,key=by_score)
11 print(l2)

題目:用一組tuple表示學生名字和成績,用sorted()對上述列表分別按名字和成績高低排序。

知識點:

1、Python內置的sorted()函數可以對list進行排序,sorted()函數也是一個高階函數,它還可以接收一個key函數來實現自定義的排序,key指定的函數將作用於list的每一個元素上,並根據key函數返回的結果進行排序,這里我之前不理解的一點,key函數作用於每一個元素上,根據返回的結果來排序,但排序的對象仍然是原list,key函數相當於對每一個元素作了一次自定義的背景調查。

2、默認情況下,對字符串排序,是按照ASCII的大小比較的,由於'Z' < 'a',大寫字母Z會排在小寫字母a的前面。

3、要進行反向排序,不必改動key函數,可以傳入第三個參數reverse=True,默認是升序(reverse=False),降序排列用(reverse=True)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM