###### tags: `chapter 6` `Python`
# 6-3 串列的排序 #
串列排序通常用在數值資料,但字串資料也是可以進行排序的,其排序的依據是按照每一個字元的ASCII碼做排序,排序的方式有很多種,但為了講求寫程式時的便利性,我們會直接呼叫python的`sort()`函數來幫助我們。
```python=
player = ["Lebron", "Jordan", "Curry", "Giannis", "Howard"]
player.sort()
print(player)
# ['Curry', 'Giannis', 'Howard', 'Jordan', 'Lebron']
```
```python=
score = [90, 70, 80, 30, 50]
score.sort()
print(score)
# [30, 50, 70, 80, 90]
```
## 暫時性排序 ##
`sort()`函數會永久的排序資料,也就是說資料無法回去到未排序的狀態,如果想要讓資料在輸出排序後的結果之後返回到原本的狀態,可以使用`sorted()`
```python=
score = [90, 70, 80, 30, 50]
print(sorted(score))
print(score)
# [30, 50, 70, 80, 90]
# [90, 70, 80, 30, 50]
```
## 排序反轉 ##
排序的時候通常是由小排到大,如果遇到需要大到小的排序時你可以使用`reverse()`函數,這個函數不是只有排序後的資料可以使用,如果今天無聊想把隨便一個串列反轉,也是可以的。此外,`sort()`和`sorted()`本身就有內建`reverse`的參數,只要設為`TRUE`就可以囉!不用多呼叫一次`reverse()`。
```python=
score = [90 , 70 , 80 , 30 , 50]
score.sort()
print(score)
score.sort(reverse=True)
print(score)
# [30, 50, 70, 80, 90]
# [90, 80, 70, 50, 30]
```