欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 列表 sort()函數(shù)使用實例詳解

 更新時間:2023年07月17日 14:56:48   作者:士別三日wyx  
這篇文章主要介紹了Python 列表 sort()函數(shù)使用詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

sort() 可以對列表進行「排序」

語法

list.sort( key, reverse )

參數(shù)

  • key :(可選)指定排序規(guī)則
  • reverse :(可選)升序降序

返回值

  • 返回None,同時將原列表排序。也就是沒有返回值

案例:將列表中的元素排序

list1 = [1, 3, 2, 5]
list1.sort()
print(list1)

輸出:

[1, 2, 3, 5]

1、升序降序

reverse 參數(shù)控制排序的「升序」和「降序」,True表示降序、False表示升序;默認升序reverse=False

list1 = [1, 3, 2, 5]
list1.sort(reverse=True)
print(list1)
list1.sort(reverse=False)
print(list1)
list1.sort()
print(list1)

輸出:

[5, 3, 2, 1]
[1, 2, 3, 5]
[1, 2, 3, 5]

2、sort()和sorted()的區(qū)別

接收 sort() 的返回值,可以發(fā)現(xiàn)是None

list1 = [1, 3, 2, 5]
list2 = list1.sort()
print(list2)

輸出:

None

打印一下排序前、后的「內(nèi)存地址」,可以發(fā)現(xiàn)地址沒有改變

list1 = [1, 3, 2, 5]
print(id(list1))
list1.sort()
print(id(list1))

輸出:

2361470487744

2361470487744

sort() 的設(shè)計思想就是「修改」原列表,而不是返回新的列表;它不會創(chuàng)建新的列表,從而節(jié)省「效率」;當然,這也意味著原列表被修改了,使用時要留意這一點;sorted() 是 sort() 的擴展函數(shù),可以對列表的元素排序,同時不會修改原列表。

list1 = [1, 3, 2, 5]
list2 = sorted(list1)
print(list1)
print(list2)

輸出:

[1, 3, 2, 5]
[1, 2, 3, 5]

從結(jié)果可以看到, sorted() 創(chuàng)建了新的列表,用來保存排序后的列表。

3、切片排序

將原列表「切片」復制給新列表,再對新列表排序,同樣可以實現(xiàn)排序且不改變原列表。

list1 = [1, 3, 2, 5]
list2 = list1[:]
list2.sort()
print(list1)
print(list2)

輸出:

[1, 3, 2, 5]
[1, 2, 3, 5]

直接「賦值」的方式是不行的,因為賦值的話,兩個列表會指向同一個內(nèi)存地址,原列表會同步變化。

list1 = [1, 3, 2, 5]
list2 = list1
list2.sort()
print(list1)
print(list2)

輸出:

[1, 2, 3, 5]
[1, 2, 3, 5]

4、指定排序規(guī)則

key 參數(shù)可以指定排序「規(guī)則」

4.1、按字符串長度排序

對于元素全是字符串的「列表」,可以按照字符串的「長度」來排序

list1 = ['aaaaa', 'aa', 'aaaa', 'a']
list1.sort(key=len)
print(list1)

輸出:

['a', 'aa', 'aaaa', 'aaaaa']

本質(zhì)上是利用字符串的 len() 函數(shù)計算長度,再排序,如果遇到 int 這列沒有 len() 函數(shù)的元素,就會報錯 TypeError: object of type ‘int’ has no len()。

在這里插入圖片描述

4.2、按第二個字符排序

對于元素全是字符串的列表,可以按照元素的第幾個「字符」排序。

list1 = ['cb', 'fa', 'zd', 'ec']
list1.sort(key=lambda x: x[1])
print(list1)

輸出:

['fa', 'cb', 'ec', 'zd']

需要注意的是,所有元素的字符長度都要夠數(shù),比如元素只有1個字符,卻按照第2個字符排序,函數(shù)找不到第2個字符,肯定會報錯 IndexError: string index out of range

在這里插入圖片描述

4.3、查找第n大的元素

先降序,再按照「索引」取值,就能獲取列表中第一大的值或第二大的值等。

list1 = [4, 3, 9, 6, 1]
list1.sort(reverse=True)
print('最大的元素:', list1[0])
print('第二大的元素:', list1[1])

輸出:

最大的元素: 9
第二大的元素: 6

5、其他類型排序

sort() 只能對列表排序,而 sorted() 能對可迭代對象排序;所以,字符串、元組、字典等類型想排序,可以用 sorted()

str1 = "312"
print(sorted(str1))
tuple1 = (5, 1, 3)
print(sorted(tuple1))
dict1 = {"key1": 1, "key2": 2}
print(sorted(dict1))

輸出:

['1', '2', '3']
[1, 3, 5]
['key1', 'key2']

從輸出結(jié)果可以發(fā)現(xiàn),字符串、元組、字典類型排序后,返回的是列表類型;并且字典只對鍵排序,不對值排序。

到此這篇關(guān)于Python 列表 sort()函數(shù)使用詳解的文章就介紹到這了,更多相關(guān)Python 列表 sort()函數(shù)使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python?snap7讀寫PLC的操作方法

    python?snap7讀寫PLC的操作方法

    這篇文章主要介紹了python?snap7讀寫PLC的操作方法,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • python 實現(xiàn)按對象傳值

    python 實現(xiàn)按對象傳值

    今天小編就為大家分享一篇python 實現(xiàn)按對象傳值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python操作jira添加模塊的方法

    python操作jira添加模塊的方法

    在開發(fā)工作中,Jira通常用作BUG管理和任務(wù)跟蹤管理等,項目經(jīng)理,測試人員,開發(fā)人員等在Jira上進行提交BUG,提交任務(wù),修改任務(wù)進度等操作.本文重點給大家介紹python操作jira添加模塊的方法,感興趣的朋友一起看看吧
    2022-03-03
  • python+selenium識別驗證碼并登錄的示例代碼

    python+selenium識別驗證碼并登錄的示例代碼

    本篇文章主要介紹了python+selenium識別驗證碼并登錄的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • python函數(shù)缺省值與引用學習筆記分享

    python函數(shù)缺省值與引用學習筆記分享

    有關(guān)一個在函數(shù)參數(shù)設(shè)置缺省值與引用的問題,這個問題是大多數(shù)Pythoner可能會忽視的問題,作個筆記,以備后閱,同時供需要的朋友參考
    2013-02-02
  • Python的matplotlib繪圖如何修改背景顏色的實現(xiàn)

    Python的matplotlib繪圖如何修改背景顏色的實現(xiàn)

    這篇文章主要介紹了Python的matplotlib繪圖如何修改背景顏色的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 一文帶你弄懂Python3中的def?__init__

    一文帶你弄懂Python3中的def?__init__

    說起基礎(chǔ)的init函數(shù)也是我們的老朋友了,組合函數(shù)的要么是理解又一定的難度,要么是操作方法有復雜的地方,小編今天要講的def __init()__屬于第一種,下面這篇文章主要給大家介紹了關(guān)于如何通過一文帶你弄懂Python3中的def?__init__的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Django零基礎(chǔ)入門之運行Django版的hello world

    Django零基礎(chǔ)入門之運行Django版的hello world

    這篇文章主要介紹了Django零基礎(chǔ)入門之運行Django版的hello world,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • opencv+python實現(xiàn)鼠標點擊圖像,輸出該點的RGB和HSV值

    opencv+python實現(xiàn)鼠標點擊圖像,輸出該點的RGB和HSV值

    這篇文章主要介紹了opencv+python實現(xiàn)鼠標點擊圖像,輸出該點的RGB和HSV值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python使用pygame框架實現(xiàn)推箱子游戲

    python使用pygame框架實現(xiàn)推箱子游戲

    這篇文章主要為大家詳細介紹了python使用pygame框架實現(xiàn)推箱子游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11

最新評論