【Python】Python - 對List排序。Sort Lists
【Python】Python - 對List排序。Sort Lists
對List以英數字排序
List物件有sort()方法,可以對list內的items作英數字的排序,排序預設值為升冪排序(ascending):
範例
對 list 作英文排序:
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort()
print(thislist)
上面輸出: ['banana', 'kiwi', 'mango', 'orange', 'pineapple']
範例
對 list中以數字排序:
thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)
上面輸出: [23, 50, 65, 82, 100]
降冪排序
要做降冪排序 使用參數 reverse = True
:
範例
將list作降冪排序:
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)
上面輸出:['pineapple', 'orange', 'mango', 'kiwi', 'banana']
範例
對list中的數字作降冪排序:
thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist)
上面輸出: [100, 82, 65, 50, 23]
自定義排序函數(排序方法)
你可以自定義自己的排序方法使用 keyword argument key = function
.
函數回傳的數字將用來排序list內的items (最小的在前面):
範例
將list內的items排序,以最接近50的由小到大排序:
def myfunc(n):
return abs(n - 50)
thislist = [100, 50, 65, 82, 23]
thislist.sort(key = myfunc)
print(thislist)
上面回傳: [50, 65, 23, 82, 100]
大小寫敏感的排序
預設的 sort()
方法為大小寫明敏感的,所以排序會將小寫的排在前面:
範例
大小寫有區分(敏感)的排序可能會使得產出結果不是我們預期的:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)
上面輸出: ['Kiwi', 'Orange', 'banana', 'cherry']
幸運地,python有內建函數可以排序,所以,如果需要排序大小寫不要區分的可以加入key=str.lower來排序:
範例
將下面的list排序,不區分大小寫:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key = str.lower)
print(thislist)
上面輸出: ['banana', 'cherry', 'Kiwi', 'Orange']
反轉排序
如果需要將英文字母順序次序反轉可使用reverse()
方法來完成:
範例
將list的從原本的順序作相反排序:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)
上面輸出: ['cherry', 'Kiwi', 'Orange', 'banana']
留言
張貼留言