iT邦幫忙

0

Python sort() sorted()

  • 分享至 

  • twitterImage
  •  

python有內建sort()與sorted()兩種排序方法

以下將為各位詳細介紹

sort()

sort()可以將列表中的元素由小排序到大,對於純數值列表與純英文字串列表有很好的分群效果

範例輸入1.1

a=[3,1,2]
a.sort()
b=['b','c','a']
b.sort()
print(f'a={a}')
print(f'b={b}')

範例輸出1.1

a=[1, 2, 3]
b=['a', 'b', 'c']

在排序字串列表時,順序為負數(字串型別)->零(字串型別)->正數(字串型別)->大寫英文字母(由A到Z排序)->小寫英文字母(由a到z排序)

範例輸入1.2

a=['1','a','-1','A']
a.sort()
print(f'a={a}')

範例輸出1.2

a=['-1', '1', 'A', 'a']

上述的內容皆是由小排序至大(預設),sort()也允許由大排序至小,只需在函式後方增加參數reverse=True即可

範例輸入1.3

a=[1,3,2]
a.sort()
print(f'a={a}')
a.sort(reverse=True)
print(f'reverse_a={a}')

範例輸出1.3

a=[1, 2, 3]
reverse_a=[3, 2, 1]

上面的程式碼第一個是由小到大的結果
第二個是由大到小排序過後的結果

值得注意的是
經sort()排序後原列表中的元素順序將被永久更改
如果希望保留原列表,可以使用sorted()

sorted()

我們可以使用sorted()產生新串列來儲存排序結果,其排序規則與sort()相同

範例輸入2.1

a=[3,1,2]
b=sorted(a)
print(f'a={a}')
print(f'b={b}')

範例輸出2.1

a=[3, 1, 2]
b=[1, 2, 3]

上面的程式碼第一個是原來的列表順序
第二個是排序過後的新列表
原先的列表並不會被改變

sorted()同樣也允許由大排序至小,只需在函式後方增加參數reverse=True即可,這裡就不再多做贅述


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言