#範例5-6:串列/數組/列表,list的進階排序(呼叫自訂函數) #https://www.w3schools.com/python/python_lists_sort.asp #https://www.w3school.com.cn/python/ref_list_sort.asp #語法:list.sort(reverse=True|False, key=myFunc) #key:可選。指定排序標準的函數。 a1 = ["tom","john","bo","mikewang","jolin","peter"] print(a1) #---------------------------- #1.依照item的長度來排序 #逆向排序 #---------------------------- #2.字典dict資料,依照出生年year來排序 a2 = [{"name":"tom","year":1952},{"name":"john","year":1940},{"name":"bo","year":1970},{"name":"peter","year":1950}] #逆向排序 #---------------------------- #3.字典dict資料,依照姓名長度來排序 #---------------------------- #4.字典dict資料,依照姓名字母來排序 #---------------------------- #5.先排序小寫,再排序大寫 a3 = ["tom","john","Bo","Mikewang","Jolin","bob"] #不需要寫def myCase.... #預設排序:先排大寫,結束後,再排小寫 #自訂排序:不考慮大小寫(一律先轉成小寫,再排序) #---------------------------- #6.排序依照最接近0的 a4 = [-50, -10, 30, 5, -3, 25] #---------------------------- #6.排序依照最接近20的 -------------------------------------------------- ----------------------------------------------------------- #範例5-6:串列/數組/列表,list的進階排序(呼叫自訂函數) #https://www.w3schools.com/python/python_lists_sort.asp #https://www.w3school.com.cn/python/ref_list_sort.asp #語法:list.sort(reverse=True|False, key=myFunc) #key:可選。指定排序標準的函數。 a1 = ["tom","john","bo","mikewang","jolin","peter"] print(a1) #---------------------------- #1.依照item的長度來排序 def myLength(item): return len(item) a1.sort(key=myLength) print(a1) #逆向排序 a1.sort(reverse=True, key=myLength) print(a1) #---------------------------- #2.字典dict資料,依照出生年year來排序 a2 = [{"name":"tom","year":1952},{"name":"john","year":1940},{"name":"bo","year":1970},{"name":"peter","year":1950}] def myYear(item): return item["year"] a2.sort(key=myYear) print(a2) #逆向排序 a2.sort(reverse=True,key=myYear) print(a2) #---------------------------- #3.字典dict資料,依照姓名長度來排序 def myLen(item): return len(item["name"]) a2.sort(key=myLen) print(a2) #---------------------------- #4.字典dict資料,依照姓名字母來排序 def myLetter(item): return item["name"] a2.sort(key=myLetter) print(a2) #---------------------------- #5.先排序小寫,再排序大寫 a3 = ["tom","john","Bo","Mikewang","Jolin","bob"] #不需要寫def myCase.... #預設排序:先排大寫,結束後,再排小寫 a3.sort() print(a3) #自訂排序:不考慮大小寫(一律先轉成小寫,再排序) a3.sort(key=str.lower) print(a3) #---------------------------- #6.排序依照最接近0的 a4 = [-50, -10, 30, 5, -3, 25] def myNum(item): return abs(item) a4.sort(key=myNum) print(a4) #---------------------------- #6.排序依照最接近20的 def myNum20(item): return abs(item-20) a4.sort(key=myNum20) print(a4) -----------------------------------------------------------