最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中sort函數(shù)正則表達(dá)式的使用

 更新時(shí)間:2024年03月13日 09:54:35   作者:Alan_Lowe  
在python中,sort是列表排序的一種方法,本文就來(lái)介紹一下sort函數(shù)正則表達(dá)式的使用以及與sorted的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下

最近老是遇到使用python的sort函數(shù)時(shí)忘記怎么寫排序規(guī)則的情況,這里好好整理一下。

1.sort函數(shù)最簡(jiǎn)單的用法

最簡(jiǎn)單的就是利用sort函數(shù)對(duì)一維列表進(jìn)行排序:

l = [99, 55, 66, 10, 80]

l.sort()

print(l)

輸出:

[10, 55, 66, 80, 99]

2.sort函數(shù)reverse

如果需要降序排序,那么可以給sort函數(shù)的reverse設(shè)置成True:

l = [99, 55, 66, 10, 80]

l.sort(reverse=True)

print(l)

輸出:

[99, 80, 66, 55, 10]

3.自定義比較函數(shù)

如果列表當(dāng)中的每一個(gè)元素都是一個(gè)列表,即算法競(jìng)賽當(dāng)中經(jīng)常遇到的二維數(shù)組這種情況,那么上面兩種寫法就都不適用了。熟悉C++的都知道,在C++中可以自定義一個(gè)cmp函數(shù)來(lái)指定自己的排序規(guī)則,那么在python當(dāng)中也可以這樣:

l = [[2,1], [1,3],[3,0]]

def cmp(x):
    # 這里表示按照每個(gè)元素的第0個(gè)元素來(lái)排序
    return x[0]

l.sort(key=cmp)

print(l)

輸出:

[[1, 3], [2, 1], [3, 0]]

4.自定義比較函數(shù)plus

如果比較的規(guī)則更復(fù)雜,比如優(yōu)先按照第0個(gè)元素進(jìn)行比較,然后按照第1個(gè)元素比較,這種情況只需要在cmp函數(shù)當(dāng)中返回一個(gè)元組就可以了:

l = [[2,1,1], [2,0,3],[1,2,0],[3,-10,-10]]

def cmp(x):
    # 這里表示先按照第0個(gè)元素,再按照第一個(gè)元素
    return (x[0],x[1])

l.sort(key=cmp)

print(l)

輸出:

[[1, 2, 0], [2, 0, 3], [2, 1, 1], [3, -10, -10]]

5.正則表達(dá)式

可以看到排序規(guī)則寫起來(lái)有點(diǎn)麻煩,還需要重新寫一個(gè)排序函數(shù),如果有多個(gè)數(shù)組需要這樣排序,可能還會(huì)寫多個(gè)排序規(guī)則。在python中還可以用正則表達(dá)式來(lái)寫排序規(guī)則:

l = [[2,1,1], [2,0,3],[1,2,0],[3,-10,-10]]

l.sort(key = lambda x : (x[0], x[1]))

print(l)

輸出:

[[1, 2, 0], [2, 0, 3], [2, 1, 1], [3, -10, -10]]

與sorted的區(qū)別

sorted() 函數(shù)是Python中的內(nèi)置函數(shù)

sorted 可以對(duì)所有可迭代的對(duì)象進(jìn)行排序操作,尤其是可以對(duì)字典進(jìn)行排序。sorted() 函數(shù)將重新排序 iterable 參數(shù)中的元素,并將結(jié)果返回一個(gè)新的列表(對(duì)原列表的順序不會(huì)產(chǎn)生影響)。

語(yǔ)法格式為:sorted(iterable, key=None, reverse=False)。

  • iterable:指定一個(gè)待排序的可迭代對(duì)象。
  • key:指定一個(gè)只有單個(gè)參數(shù)的函數(shù),用于從 iterable
    參數(shù)的每個(gè)元素中提取用于比較的有效關(guān)鍵值(比如可以用 key = str.lower 來(lái)實(shí)現(xiàn)忽略大小寫的排序;或者用 key = len
    進(jìn)行基于字符串長(zhǎng)度的排序)
  • reverse:該參數(shù)是一個(gè)布爾類型值,如果設(shè)置為 True,則將結(jié)果反向排序,默認(rèn)值是 False。

例子演示:1、對(duì)列表進(jìn)行排序

num = [1,5,3,2,8,4,0]
print(sorted(num))

結(jié)果:

[0, 1, 2, 3, 4, 5, 8]

2、對(duì)元祖進(jìn)行排序

num2 = (3,2,7,4,0,1,1)
print(sorted(num2))

結(jié)果:

[0, 1, 1, 2, 3, 4, 7]

3、對(duì)字典進(jìn)行排序

對(duì)于字典而言,默認(rèn)對(duì)keys進(jìn)行排序

num3 = {"Houmin":18, "Chen":22, "Wang":12}
print(sorted(num3))  # 對(duì)于字典而言,默認(rèn)對(duì)keys進(jìn)行排序
print(sorted(num3.items())) # 根據(jù)items進(jìn)行排序,以列表形式返回鍵值對(duì)
print(sorted(num3.values())) # 對(duì)字典中的值進(jìn)行排序,返回列表形式

結(jié)果:

['Chen', 'Houmin', 'Wang']
[('Chen', 22), ('Houmin', 18), ('Wang', 12)]
[12, 18, 22]

根據(jù)年齡從大到小進(jìn)行排序

num3 = {"Houmin":18, "Chen":22, "Wang":12}
print(sorted(num3.items(),key=lambda x:x[1]))
print(sorted(num3.items(), key=lambda x:x[-1]))

結(jié)果:

[('Wang', 12), ('Houmin', 18), ('Chen', 22)]
[('Wang', 12), ('Houmin', 18), ('Chen', 22)]

根據(jù)年齡從大到小進(jìn)行排序

print(sorted(num3.items(), key=lambda x:x[1], reverse=True))

結(jié)果:

[('Chen', 22), ('Houmin', 18), ('Wang', 12)]

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

相關(guān)文章

  • flask使用session保存登錄狀態(tài)及攔截未登錄請(qǐng)求代碼

    flask使用session保存登錄狀態(tài)及攔截未登錄請(qǐng)求代碼

    這篇文章主要介紹了flask使用session保存登錄狀態(tài)及攔截未登錄請(qǐng)求代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 如何在vscode中安裝python庫(kù)的方法步驟

    如何在vscode中安裝python庫(kù)的方法步驟

    這篇文章主要介紹了如何在vscode中安裝python庫(kù)的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python中反射和描述器總結(jié)

    Python中反射和描述器總結(jié)

    這篇文章主要介紹了Python中的反射和描述器一些知識(shí)的匯總,非常的詳細(xì),有需要的小伙伴可以參考下
    2018-09-09
  • Python with用法:自動(dòng)關(guān)閉文件進(jìn)程

    Python with用法:自動(dòng)關(guān)閉文件進(jìn)程

    這篇文章主要介紹了Python with用法:自動(dòng)關(guān)閉文件進(jìn)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python中進(jìn)行自動(dòng)化辦公的五大場(chǎng)景詳解

    Python中進(jìn)行自動(dòng)化辦公的五大場(chǎng)景詳解

    在數(shù)字化的今天,重復(fù)性、繁瑣的辦公任務(wù)常常占據(jù)我們寶貴的時(shí)間,本指南將帶你從零開始,逐步掌握 Python 自動(dòng)化辦公的核心技能,有需要的小伙伴可以了解下
    2025-12-12
  • 使用Python實(shí)現(xiàn)自動(dòng)化移除Excel公式并保留純凈數(shù)值

    使用Python實(shí)現(xiàn)自動(dòng)化移除Excel公式并保留純凈數(shù)值

    這篇文章將深入探討如何利用Python,特別是借助一個(gè)功能強(qiáng)大的庫(kù),實(shí)現(xiàn)Excel公式的批量移除與數(shù)值的精準(zhǔn)保留,讓你的數(shù)據(jù)處理工作事半功倍,有需要的可以了解下
    2025-10-10
  • 使用EditPlus編輯器運(yùn)行Python程序方式

    使用EditPlus編輯器運(yùn)行Python程序方式

    這篇文章主要介紹了使用EditPlus編輯器運(yùn)行Python程序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-12-12
  • 利用Python代碼實(shí)現(xiàn)數(shù)據(jù)可視化的5種方法詳解

    利用Python代碼實(shí)現(xiàn)數(shù)據(jù)可視化的5種方法詳解

    在數(shù)據(jù)科學(xué)中,有多種工具可以進(jìn)行可視化。下面這篇文章主要給大家介紹了關(guān)于利用Python代碼實(shí)現(xiàn)數(shù)據(jù)可視化的5種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2018-03-03
  • 基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的注冊(cè)機(jī)并生成卡密

    基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的注冊(cè)機(jī)并生成卡密

    這篇文章主要為大家詳細(xì)介紹了如何使用Python編寫一個(gè)簡(jiǎn)單而強(qiáng)大的注冊(cè)機(jī),生成卡密來(lái)實(shí)現(xiàn)用戶注冊(cè),從而輕松登錄應(yīng)用程序,有需要的小伙伴快可以參考下
    2023-12-12
  • 100 個(gè) Python 小例子(練習(xí)題一)

    100 個(gè) Python 小例子(練習(xí)題一)

    這篇文章主要介紹 Python 小例子,有數(shù)字組合、個(gè)稅計(jì)算、完全平方數(shù)、三數(shù)排序、斐波那契數(shù)列、copy、九九乘法表、暫停一秒輸出等多個(gè)實(shí)例,需要的朋友可以參考一下
    2021-10-10

最新評(píng)論

潍坊市| 雷州市| 中卫市| 静安区| 远安县| 防城港市| 江阴市| 长岛县| 平和县| 仪陇县| 雅安市| 竹北市| 司法| 兴城市| 武强县| 扶风县| 恭城| 漳平市| 互助| 石家庄市| 白河县| 旺苍县| 虹口区| 绥德县| 台前县| 玛多县| 兴安县| 额尔古纳市| 攀枝花市| 阜阳市| 凯里市| 佳木斯市| 敦煌市| 潮州市| 榆中县| 巴彦淖尔市| 武威市| 赤壁市| 清镇市| 扎囊县| 白朗县|