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

Python序列排序的具體場(chǎng)景實(shí)現(xiàn)

 更新時(shí)間:2025年01月16日 10:17:55   作者:Python熱愛(ài)者  
本文主要介紹了Python序列排序的具體場(chǎng)景實(shí)現(xiàn),主要介紹了內(nèi)置的sort()方法或者全局的sorted()方法著兩種方法,具有一定的參考價(jià)值,感興趣的可以了解一下

python中,一般在涉及到列表排序時(shí),都用內(nèi)置的sort()方法或者全局的sorted()方法,區(qū)別如下:

1、sort()方法只能用于列表排序,不能用于字符串,字典等其他可迭代序列;sorted()方法可以用于所有的可迭代序列;

2、sort()方法是在原列表基礎(chǔ)上進(jìn)行排序,返回None,會(huì)破壞原始列表結(jié)構(gòu);sorted()方法是返回一個(gè)排序后的新序列,對(duì)原始列表無(wú)影響;

#sort()排序
>>> a=[6,9,8,4,3,1,2]
>>> b=a.sort()
>>> print(b)
None
>>> print(a)
[1, 2, 3, 4, 6, 8, 9]

#sorted()排序
>>> a=[6,9,8,4,3,1,2]
>>> b=sorted(a)
>>> print(b)
[1, 2, 3, 4, 6, 8, 9]
>>> print(a)
[6, 9, 8, 4, 3, 1, 2]

字典排序時(shí),sorted()方法默認(rèn)是按照字典的鍵(key)排序的,如下:

>>> a={5:'A',1:'E',4:'B',2:'D',3:'C'}
>>> b=sorted(a)
>>> print(b)
[1, 2, 3, 4, 5]

如果需要按照字典的value排序,可以用下面的方法:

>>> a={5:'A',1:'E',4:'B',2:'D',3:'C'}
>>> b=sorted(a.items(), key=lambda item:item[1])
>>> print(b)
[(5, 'A'), (4, 'B'), (3, 'C'), (2, 'D'), (1, 'E')]

高級(jí)用法

sort()方法和sorted()方法都可以指定參數(shù)來(lái)處理一些復(fù)雜場(chǎng)景的排序

1、key參數(shù):指定一個(gè)函數(shù),可以是內(nèi)置函數(shù),也可以是自己定義的函數(shù),此函數(shù)將在每個(gè)元素比較前被調(diào)用。

2、reverse參數(shù):此參數(shù)指定True or False,來(lái)進(jìn)行降序或者升序,默認(rèn)為False(升序)。

如下:

a = ["This", "A", "is", "bag"]
b = sorted(a, key=str.lower)
c = sorted(a, key=str.lower, reverse=True)
print(b)
print(c)

['A', 'bag', 'is', 'This']
['This', 'is', 'bag', 'A']

更廣泛的使用情況是用復(fù)雜對(duì)象的某些值來(lái)對(duì)復(fù)雜對(duì)象的序列排序,例如:

一個(gè)列表保存著每個(gè)學(xué)生的姓名,檔次和分?jǐn)?shù)

#學(xué)習(xí)中遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流群:531509025
student_tuples = [
    ('john', 'A', 96),
    ('leky', 'D', 63),
    ('andy', 'A', 92),
    ('jane', 'B', 82),
    ('dave', 'B', 85),
    ('cany', 'A', 96)
]

場(chǎng)景1、按檔次從高到低進(jìn)行排序

student_tuples = [
    ('john', 'A', 96),
    ('leky', 'D', 63),
    ('andy', 'A', 92),
    ('jane', 'B', 82),
    ('dave', 'B', 85),
    ('cany', 'A', 96)
]
print(sorted(student_tuples, key=lambda student: student[1]))

[('john', 'A', 96), ('andy', 'A', 92), ('cany', 'A', 96), ('jane', 'B', 82), ('dave', 'B', 85), ('leky', 'D', 63)]

場(chǎng)景2、按分?jǐn)?shù)從高到低排序

方法(1)、使用reverse參數(shù)

student_tuples = [
    ('john', 'A', 96),
    ('leky', 'D', 63),
    ('andy', 'A', 92),
    ('jane', 'B', 82),
    ('dave', 'B', 85),
    ('cany', 'A', 96),
]
print(sorted(student_tuples, key=lambda student: student[2], reverse=True))

[('john', 'A', 96), ('cany', 'A', 96), ('andy', 'A', 92), ('dave', 'B', 85), ('jane', 'B', 82), ('leky', 'D', 63)]

方法(2)、使用負(fù)號(hào)(-)

student_tuples = [
    ('john', 'A', 96),
    ('leky', 'D', 63),
    ('andy', 'A', 92),
    ('jane', 'B', 82),
    ('dave', 'B', 85),
    ('cany', 'A', 96),
]
print(sorted(student_tuples, key=lambda student: -student[2]))

[('john', 'A', 96), ('cany', 'A', 96), ('andy', 'A', 92), ('dave', 'B', 85), ('jane', 'B', 82), ('leky', 'D', 63)]

注意:負(fù)號(hào)(-)只能用于數(shù)字前面,不能用于字符串前面

場(chǎng)景3、按檔次從高到低進(jìn)行排序,檔次相同的按分?jǐn)?shù)從高到底排序

student_tuples = [
    ('john', 'A', 96),
    ('leky', 'D', 63),
    ('andy', 'A', 92),
    ('jane', 'B', 82),
    ('dave', 'B', 85),
    ('cany', 'A', 96)
]
print(sorted(student_tuples, key=lambda student: [student[1], -student[2]]))

[('john', 'A', 96), ('cany', 'A', 96), ('andy', 'A', 92), ('dave', 'B', 85), ('jane', 'B', 82), ('leky', 'D', 63)]

場(chǎng)景4、按檔次從低到高進(jìn)行排序,檔次相同的按分?jǐn)?shù)從低到高排序

student_tuples = [
    ('john', 'A', 96),
    ('leky', 'D', 63),
    ('andy', 'A', 92),
    ('jane', 'B', 82),
    ('dave', 'B', 85),
    ('cany', 'A', 96)
]
print(sorted(student_tuples, key=lambda student: [student[1], -student[2]],reverse=True))

[('leky', 'D', 63), ('jane', 'B', 82), ('dave', 'B', 85), ('andy', 'A', 92), ('john', 'A', 96), ('cany', 'A', 96)]

場(chǎng)景5、按檔次從低到高進(jìn)行排序,檔次相同的按分?jǐn)?shù)從低到高排序,最后再按照姓名升序

姓名是字符串,不能在字符串前面用“符號(hào)(-)”來(lái)排序,可以重寫(xiě)“富比較”方法

#學(xué)習(xí)中遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流群:531509025
class Reversinator(object):
    def __init__(self, obj):
        self.obj = obj

    def __lt__(self, other):
        return other.obj < self.obj


student_tuples = [
    ('john', 'A', 96),
    ('leky', 'D', 63),
    ('andy', 'A', 92),
    ('jane', 'B', 82),
    ('dave', 'B', 85),
    ('cany', 'A', 96),
]

print(sorted(student_tuples, key=lambda student: [student[1], -student[2], Reversinator(student[0])], reverse=True))

[('leky', 'D', 63), ('jane', 'B', 82), ('dave', 'B', 85), ('andy', 'A', 92), ('cany', 'A', 96), ('john', 'A', 96)]

到此這篇關(guān)于Python序列排序的具體場(chǎng)景實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python序列排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • PyTorch 檢查GPU版本是否安裝成功的操作

    PyTorch 檢查GPU版本是否安裝成功的操作

    這篇文章主要介紹了PyTorch 檢查GPU版本是否安裝成功的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Python?虛擬機(jī)字典dict內(nèi)存優(yōu)化方法解析

    Python?虛擬機(jī)字典dict內(nèi)存優(yōu)化方法解析

    這篇文章主要為大家介紹了Python?虛擬機(jī)字典dict內(nèi)存優(yōu)化方法解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 解讀Python中的frame是什么

    解讀Python中的frame是什么

    這篇文章主要介紹了解讀Python中的frame是什么,關(guān)于frame使用講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 教大家玩轉(zhuǎn)Python字符串處理的七種技巧

    教大家玩轉(zhuǎn)Python字符串處理的七種技巧

    這篇文章主要給大家介紹了關(guān)于學(xué)會(huì)Python字符串處理的七種技巧,其中包括字符串的連接和合并、字符串的切片和相乘、字符串的分割、字符串的開(kāi)頭和結(jié)尾的處理、字符串的查找和匹配、字符串的替換以及字符串中去掉一些字符等操作,需要的朋友可以參考。
    2017-03-03
  • Python中int()函數(shù)的用法淺析

    Python中int()函數(shù)的用法淺析

    這篇文章主要介紹了Python中int()函數(shù)的用法淺析的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • Python中的模型建模與選擇策略詳解

    Python中的模型建模與選擇策略詳解

    本文詳細(xì)介紹了模型選擇、超參數(shù)調(diào)優(yōu)、特征工程和模型融合在機(jī)器學(xué)習(xí)中的重要性和具體方法,通過(guò)這些步驟,我們可以提高模型的準(zhǔn)確性和泛化能力,從而在實(shí)際應(yīng)用中取得更好的效果,每個(gè)部分都提供了理論知識(shí)和實(shí)際案例,幫助讀者更好地理解和應(yīng)用這些技術(shù)
    2025-01-01
  • php使用遞歸與迭代實(shí)現(xiàn)快速排序示例

    php使用遞歸與迭代實(shí)現(xiàn)快速排序示例

    這篇文章主要介紹了php使用遞歸與迭代實(shí)現(xiàn)快速排序的示例,大家參考使用吧
    2014-01-01
  • 使用Python給PDF添加文本超鏈接和圖片超鏈接

    使用Python給PDF添加文本超鏈接和圖片超鏈接

    超鏈接是指向特定資源的鏈接,作為一種有效的導(dǎo)航工具,它能夠幫助讀者快速訪問(wèn)相關(guān)信息,通過(guò)在PDF文檔中添加文本超鏈接和圖片超鏈接,你可以顯著提升文檔的互動(dòng)性和用戶體驗(yàn),這篇文章將詳細(xì)介紹如何使用Python給PDF添加文本超鏈接和圖片超鏈接,需要的朋友可以參考下
    2025-03-03
  • 在python中路徑含有空格的問(wèn)題及解決

    在python中路徑含有空格的問(wèn)題及解決

    這篇文章主要介紹了在python中路徑含有空格的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 嘗試用最短的Python代碼來(lái)實(shí)現(xiàn)服務(wù)器和代理服務(wù)器

    嘗試用最短的Python代碼來(lái)實(shí)現(xiàn)服務(wù)器和代理服務(wù)器

    "人生苦短、我用Python",Python最大的特點(diǎn)便是代碼簡(jiǎn)潔,得益于Python自帶的wsgiref包和socket模塊,這里我們將嘗試用最短的Python代碼來(lái)實(shí)現(xiàn)服務(wù)器和代理服務(wù)器:
    2016-06-06

最新評(píng)論

三亚市| 泰宁县| 科技| 新竹县| 南漳县| 时尚| 汝阳县| 宣化县| 巨鹿县| 辽阳县| 类乌齐县| 河北区| 五原县| 怀来县| 体育| 乳山市| 保山市| 图片| 城固县| 靖江市| 怀来县| 民丰县| 湘西| 山丹县| 额尔古纳市| 临颍县| 五寨县| 寿光市| 张掖市| 新巴尔虎右旗| 咸阳市| 临沭县| 灵石县| 焦作市| 阆中市| 尚志市| 太白县| 黄冈市| 永州市| 平江县| 陆良县|