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

Python中sorted()函數(shù)之排序的利器詳解

 更新時(shí)間:2024年08月05日 09:54:33   作者:程序員喵哥  
sorted()函數(shù)是Python中的內(nèi)置函數(shù),用于對(duì)可迭代對(duì)象進(jìn)行排序,下面這篇文章主要給大家介紹了關(guān)于Python中sorted()函數(shù)之排序的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在 Python 中,sorted() 函數(shù)是用于對(duì)可迭代對(duì)象進(jìn)行排序的內(nèi)置函數(shù)。本文將深入探討 sorted() 函數(shù)的用法、工作原理以及常見(jiàn)應(yīng)用場(chǎng)景,可以更好地理解和應(yīng)用這個(gè)函數(shù)。

什么是 sorted() 函數(shù)?

sorted() 函數(shù)是 Python 中的一個(gè)內(nèi)置函數(shù),用于對(duì)可迭代對(duì)象進(jìn)行排序。該函數(shù)返回一個(gè)新的列表,其中包含了按照指定排序規(guī)則排序后的原始數(shù)據(jù)。

sorted() 函數(shù)的基本語(yǔ)法如下:

sorted(iterable, *, key=None, reverse=False)
  • iterable 是要排序的可迭代對(duì)象,例如列表、元組、集合等。

  • key 是一個(gè)可選參數(shù),用于指定排序時(shí)要應(yīng)用的函數(shù)。

  • reverse 是一個(gè)可選參數(shù),用于指定排序順序,True 表示降序,F(xiàn)alse 表示升序(默認(rèn)為 False)。

sorted() 函數(shù)的基本用法

先來(lái)看一些 sorted() 函數(shù)的基本用法。

1. 對(duì)列表進(jìn)行排序

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

在這個(gè)示例中,對(duì)列表 numbers 進(jìn)行排序,并將排序后的結(jié)果存儲(chǔ)在新列表 sorted_numbers 中。

2. 對(duì)字符串進(jìn)行排序

text = "python"
sorted_text = sorted(text)
print(sorted_text)  # ['h', 'n', 'o', 'p', 't', 'y']

在這個(gè)示例中,對(duì)字符串 text 進(jìn)行排序,按照字母順序?qū)⒆址指畛蓡蝹€(gè)字符,并將排序后的結(jié)果存儲(chǔ)在新列表 sorted_text 中。

3. 對(duì)集合進(jìn)行排序

fruits = {"apple", "banana", "orange", "pineapple", "grape"}
sorted_fruits = sorted(fruits)
print(sorted_fruits)  # ['apple', 'banana', 'grape', 'orange', 'pineapple']

在這個(gè)示例中,對(duì)集合 fruits 進(jìn)行排序,按照字母順序?qū)⒓显嘏判?,并將排序后的結(jié)果存儲(chǔ)在新列表 sorted_fruits 中。

sorted() 函數(shù)的常見(jiàn)應(yīng)用場(chǎng)景

sorted() 函數(shù)在 Python 編程中有許多應(yīng)用場(chǎng)景,以下是一些常見(jiàn)的用法:

1. 自定義排序規(guī)則

sorted() 函數(shù)通過(guò)指定 key 參數(shù)來(lái)定義自定義排序規(guī)則。

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers, key=lambda x: x % 3)
print(sorted_numbers)  # [3, 6, 9, 3, 1, 4, 1, 5, 2, 5, 5]

在這個(gè)示例中,定義了一個(gè)匿名函數(shù)作為 key 參數(shù),按照元素對(duì) 3 取余的結(jié)果進(jìn)行排序,從而實(shí)現(xiàn)了自定義的排序規(guī)則。

2. 排序字典

sorted() 函數(shù)也可以用于對(duì)字典的鍵或值進(jìn)行排序。

my_dict = {'a': 3, 'b': 1, 'c': 4, 'd': 2}
sorted_keys = sorted(my_dict.keys())
print(sorted_keys)  # ['a', 'b', 'c', 'd']

sorted_values = sorted(my_dict.values())
print(sorted_values)  # [1, 2, 3, 4]

在這個(gè)示例中,分別對(duì)字典的鍵和值進(jìn)行排序,并將排序后的結(jié)果存儲(chǔ)在新列表中。

3. 復(fù)雜對(duì)象的排序

sorted() 函數(shù)也可以用于對(duì)復(fù)雜對(duì)象的列表進(jìn)行排序,例如元組、對(duì)象列表等。

# 對(duì)元組列表按照第二個(gè)元素進(jìn)行排序
data = [(1, 3), (2, 1), (3, 4), (4, 2)]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data)  # [(2, 1), (1, 3), (4, 2), (3, 4)]

在這個(gè)示例中,定義了一個(gè)匿名函數(shù)作為 key 參數(shù),按照元組的第二個(gè)元素進(jìn)行排序,從而實(shí)現(xiàn)了對(duì)元組列表的排序。

4. 指定排序順序

除了使用 key 參數(shù)外,sorted() 函數(shù)還提供了 reverse 參數(shù),用于指定排序順序,即升序或降序。

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers_asc = sorted(numbers)
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_asc)  # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
print(sorted_numbers_desc)  # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

在這個(gè)示例中,分別使用 sorted() 函數(shù)的默認(rèn)排序順序和指定 reverse=True 參數(shù)的排序順序,得到了升序和降序排列的結(jié)果。

5. 排序穩(wěn)定性

Python 的排序算法保證了排序的穩(wěn)定性,即具有相同鍵值的元素在排序后的相對(duì)位置保持不變。

data = [('a', 3), ('b', 1), ('c', 3), ('d', 2)]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data)  # [('b', 1), ('d', 2), ('a', 3), ('c', 3)]

在這個(gè)示例中,元組 ('a', 3) 和 ('c', 3) 在排序后的結(jié)果中保持了原有的順序,這就是排序的穩(wěn)定性。

6. 原地排序

除了返回一個(gè)新的列表外,sorted() 函數(shù)還可以直接對(duì)原始數(shù)據(jù)進(jìn)行排序,使用 key 和 reverse 參數(shù)來(lái)指定排序規(guī)則。

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
numbers.sort(reverse=True)
print(numbers)  # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

在這個(gè)示例中,使用列表的 sort() 方法對(duì)原始數(shù)據(jù)進(jìn)行排序,指定了 reverse=True 參數(shù),實(shí)現(xiàn)了降序排序。

總結(jié)

sorted() 函數(shù)是 Python 中一個(gè)非常有用的內(nèi)置函數(shù),用于對(duì)可迭代對(duì)象進(jìn)行排序。通過(guò)合理地應(yīng)用 sorted() 函數(shù),可以實(shí)現(xiàn)對(duì)各種數(shù)據(jù)類(lèi)型的排序操作,包括列表、字符串、集合等。了解 sorted() 函數(shù)的使用方法和參數(shù)選項(xiàng),可以更靈活地處理數(shù)據(jù),提高代碼的效率和可維護(hù)性。希望本文提供的示例和解釋能夠幫助大家更好地理解和應(yīng)用 sorted() 函數(shù),在實(shí)際開(kāi)發(fā)中發(fā)揮更大的作用。

到此這篇關(guān)于Python中sorted()函數(shù)之排序利器的文章就介紹到這了,更多相關(guān)Python中sorted()函數(shù)排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pandas設(shè)置DataFrame的index索引起始值為1的兩種方法

    Pandas設(shè)置DataFrame的index索引起始值為1的兩種方法

    DataFrame中的index索引列默認(rèn)是從0開(kāi)始的,那么我們?nèi)绾卧O(shè)置index索引列起始值從1開(kāi)始呢,本文主要介紹了Pandas設(shè)置DataFrame的index索引起始值為1的兩種方法,感興趣的可以了解一下
    2024-07-07
  • python學(xué)生信息管理系統(tǒng)實(shí)現(xiàn)代碼

    python學(xué)生信息管理系統(tǒng)實(shí)現(xiàn)代碼

    這篇文章主要介紹了python學(xué)生信息管理系統(tǒng)的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單,復(fù)制即可使用,需要的朋友可以參考下
    2019-12-12
  • 使用Python3制作TCP端口掃描器

    使用Python3制作TCP端口掃描器

    本文給大家分享的是使用Python3 實(shí)現(xiàn)TCP全連接端口掃描器的制作過(guò)程,包括思路和代碼,非常簡(jiǎn)單易懂,推薦給大家
    2017-04-04
  • 使用Python構(gòu)建一個(gè)高效的日志處理系統(tǒng)

    使用Python構(gòu)建一個(gè)高效的日志處理系統(tǒng)

    這篇文章主要為大家詳細(xì)講解了如何使用Python開(kāi)發(fā)一個(gè)專(zhuān)業(yè)的日志分析工具,能夠自動(dòng)化處理、分析和可視化各類(lèi)日志文件,大幅提升運(yùn)維效率,需要的可以了解下
    2025-07-07
  • 詳解如何在ChatGPT內(nèi)構(gòu)建一個(gè)Python解釋器

    詳解如何在ChatGPT內(nèi)構(gòu)建一個(gè)Python解釋器

    這篇文章主要為大家詳細(xì)介紹了如何在ChatGPT內(nèi)構(gòu)建一個(gè)Python解釋器,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以參考一下
    2023-02-02
  • 新手必備Python開(kāi)發(fā)環(huán)境搭建教程

    新手必備Python開(kāi)發(fā)環(huán)境搭建教程

    今天向大家介紹如何搭建Python開(kāi)發(fā)環(huán)境, Python可應(yīng)用于多平臺(tái)包括 Linux 和 Mac OS X,文中有非常詳細(xì)的圖文介紹,需要的朋友可以參考下
    2021-05-05
  • Pytorch 統(tǒng)計(jì)模型參數(shù)量的操作 param.numel()

    Pytorch 統(tǒng)計(jì)模型參數(shù)量的操作 param.numel()

    這篇文章主要介紹了Pytorch 統(tǒng)計(jì)模型參數(shù)量的操作 param.numel(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Flask藍(lán)圖學(xué)習(xí)教程

    Flask藍(lán)圖學(xué)習(xí)教程

    在Flask中,使用藍(lán)圖Blueprint來(lái)分模塊組織管理。藍(lán)圖實(shí)際可以理解為是一個(gè)存儲(chǔ)一組視圖方法的容器對(duì)象,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-10-10
  • 如何解決.cuda()加載用時(shí)很長(zhǎng)的問(wèn)題

    如何解決.cuda()加載用時(shí)很長(zhǎng)的問(wèn)題

    這篇文章主要介紹了如何解決.cuda()加載用時(shí)很長(zhǎng)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 詳解用python實(shí)現(xiàn)簡(jiǎn)單的遺傳算法

    詳解用python實(shí)現(xiàn)簡(jiǎn)單的遺傳算法

    這篇文章主要介紹了詳解用python實(shí)現(xiàn)簡(jiǎn)單的遺傳算法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01

最新評(píng)論

航空| 荔浦县| 托克托县| 泸西县| 保康县| 阿合奇县| 新民市| 甘孜县| 景谷| 秦皇岛市| 雷波县| 富裕县| 沅陵县| 从化市| 汉阴县| 思茅市| 巩义市| 精河县| 嘉定区| 洱源县| 延庆县| 五华县| 邹平县| 汝阳县| 峨眉山市| 河西区| 鹰潭市| 丰都县| 林芝县| 鞍山市| 连云港市| 宜宾县| 华宁县| 台南县| 察隅县| 轮台县| 元朗区| 遵义县| 虎林市| 乌兰察布市| 绿春县|