Python list sort方法的具體使用
描述
list.sort()方法是Python的列表方法,用於對原列表進行排序。list.sort()方法沒有任何返回值。
語法
list.sort(key=function, reverse=boolean)
名稱 | 說明 | 備註 |
list | 列表名稱 | |
key=function | 列表元素權值參數 | 可省略的參數。省略時列表排序不考慮元素的權值 |
reverse=boolean | 排序規則參數 | 可省略的參數。省略時reverse默認值False |
返回值:函數在原有列表上排序並返回排序後的列表
使用示例
1. 所有參數都省略
當sort函數的所有參數都省略的情況下,對原列表進行升序排序:
1. 如果原列表是數字,則按照數字的大小排序;
2. 如果原列表是字符串,則會按照字母表順序排列.
>>> _list_a = [1, 34, 21, 4] >>> _list_a.sort() #對元素是數字的列表進行排序 >>> _list_a [1, 4, 21, 34] >>> _list_b = ['Huawei', 'Chinasoft', 'CASC', 'Alibaba', 'SoftStone', 'Tencent'] >>> _list_b.sort() #對元素是字符串的列表進行排序 >>> _list_b ['Alibaba', 'CASC', 'Chinasoft', 'Huawei', 'SoftStone', 'Tencent']
2. 指定key參數
key參數指的是為列表的元素一一標記權值,並按照元素所對應的權值來排序元素。key=函數名,該函數的返回值作為元素的權值大小。
例如,使用字符串長度作為元素的權值,用該權值排序元素是字符串的列表:
下面的例子中,分別不指定權值和指定權值來排序兩個一模一樣的列表。
>>> _list_c = ['Beijing', 'Xi\'an', 'Taiyuan', 'Taipei', 'Hongkang'] >>> _list_d = ['Beijing', 'Xi\'an', 'Taiyuan', 'Taipei', 'Hongkang'] >>> _list_c.sort() #不指定權值 >>> _list_d.sort(key=len) #指定權值 >>> _list_c ['Beijing', 'Hongkang', 'Taipei', 'Taiyuan', "Xi'an"] >>> _list_d ["Xi'an", 'Taipei', 'Beijing', 'Taiyuan', 'Hongkang'] #按照元素的長度作為權值的排序結果
很明顯,_list_d按照元素長度排序,沒有按照元素的字母表順序排序。
3. 指定reverse參數
reverse參數指的是列表排序是升序還是降序排序。當reverse參數省略或reverse=False時,列表升序排序。當reverse=True時,列表降序排序:
>>> _list_a = [13, 45, 23, 66] >>> _list_b = [13, 45, 23, 66] >>> _list_a.sort() #默認升序排序 >>> _list_b.sort(reverse=True) #降序排序 >>> _list_a [13, 23, 45, 66] >>> _list_b [66, 45, 23, 13]
?提示:當key參數和reverse參數同時指定時,sort函數按照元素的權值進行升序(reverse=False)或降序(reverse=True)進行排序。
註意事項
1. sort函數會改變原列表順序
使用sort函數時要註意的是,sort函數在調用後會改變列表本身的順序,而不是復制列表後排序,並返回復制後的列表。
>>> _list_a = [1, 34, 21, 4] >>> _list_a.sort() >>> _list_a [1, 4, 21, 34]
從上面的代碼可以看出,_list_a的列表本身順序發生瞭變化。
2. 列表元素類型不一致
當列表中的所有元素都是同一種類型時,sort()函數會正常工作。有些時候甚至多種類型也可—-例如整型和浮點型—-隻要它們能夠自動地互相轉換:
>>> list_a = [23, 21.2, 22, -67.6] >>> list_a.sort() >>> list_a [-67.6, 21.2, 22, 23]
但是當元素之間的類型不能夠互相轉換的時候,Python就會報錯,例如整數和字符串類型:
>>> a_list = [1, 3, '5', 2] >>> a_list.sort() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '<' not supported between instances of 'str' and 'int'
3. Python早些版本
在Python2中,sort函數還有一個cmp參數。
cmp — 可選參數, 如果指定瞭該參數會使用該參數的方法進行排序。
到此這篇關於Python list sort方法的具體使用的文章就介紹到這瞭,更多相關Python list sort內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python基礎之數據類型詳解
- Python常見異常類型處理
- Python基礎之dict和set的使用詳解
- python基礎入門之列表(一)
- Python列表排序 list.sort方法和內置函數sorted用法