iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Python

我的Python奇幻學習之旅系列 第 12

鐵人賽 Day12 Python的奇幻之旅-list應用-3

  • 分享至 

  • xImage
  •  

list 的列表排序

sort()

sort()可以對數字進行排序,通常()沒有寫的時候是由小排到大,但也可以由大到小,不過()中間可以換其他函數,以達到由大到小的結果

number = [2,1,4,5,6,7,3,8]
number.sort()
print(number)

https://ithelp.ithome.com.tw/upload/images/20240920/20168458lFsX61Z0T6.png
sort()除了可以排數字大小,也考已對字幕進行排序

flist = ["orange","apple","banana", "mango"]
flist.sort()
print(flist) #['apple', 'banana', 'mango', 'orange']

https://ithelp.ithome.com.tw/upload/images/20240920/20168458zR5TcFRlpS.png

list 降序排列

reverse = Ture

在sort,加上條件,使list中以降序排列

flist = ["orange","apple","banana", "mango"]
flist.sort(reverse = True)
print(flist) #['orange', 'mango', 'banana', 'apple']

https://ithelp.ithome.com.tw/upload/images/20240920/20168458NDbPNtfvHq.png

number = [2,1,4,5,6,7,3,8]
number.sort(reverse = True)
print(number) #[8, 7, 6, 5, 4, 3, 2, 1]

https://ithelp.ithome.com.tw/upload/images/20240920/201684585PwiXQ0dic.png

自訂排序

key = function

自訂函數排序功能
先def定義一個函數
再根據函數的條件回傳排序結果

def num (n): #定一個函數num
return abs(a - 20) #計算list裡的數字與20之間的絕對值

number = [28,27,66,100,19,30,50]
number.sort(key = num) #套用函數num的數字
print(number) #[19, 27, 28, 30, 50, 66, 100]絕對值離20最近的數字由小到大

https://ithelp.ithome.com.tw/upload/images/20240920/20168458DUOYcxAAna.png

字母大小寫排序

sort()

上面有提到,sort除了可以排序數字及字母,也可以利用sort排列list的大小寫

通常sort在排序的時候,會是大寫字母在前面,後面才排小寫

flist = ["Orange","apple","Banana","mango"]
flist.sort()
print(flist) #['Banana', 'Orange', 'apple', 'mango']

https://ithelp.ithome.com.tw/upload/images/20240920/20168458DNDhfSSIKh.png
這個時候,我們可以利用str.lower作為sort的關鍵函數,可以不考慮字母的大小寫進行排序

flist = ["Orange","apple","Banana","mango"]
flist.sort(str.lower)
print(flist) #['apple', 'Banana', 'mango', 'Orange']

https://ithelp.ithome.com.tw/upload/images/20240920/20168458KDZ0omAqNd.png

反轉序列

reverse()

可以反轉目前的排序,將list的順序調換

flist = ["orange","apple","banana", "mango"]
flist.reverse()
print(flist) #['mango', 'banana', 'apple', 'orange']

如果要得到降序排列的話也可以利用reverse()
以此為例

flist = ["orange","apple","banana", "mango"]
flist.sort() #先正常排序
flist.reverse() #再將排序後的順序反轉
print(flist) #['orange', 'mango', 'banana', 'apple']

https://ithelp.ithome.com.tw/upload/images/20240920/20168458nEIuP3h0Xo.png


上一篇
鐵人賽 Day11 Python的奇幻之旅-list應用-2
下一篇
鐵人賽 Day13 Python的奇幻之旅-list應用-4
系列文
我的Python奇幻學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言