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

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

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

前言

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

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

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

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

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

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

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

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

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

1. 對列表進(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è)示例中,對列表 numbers 進(jìn)行排序,并將排序后的結(jié)果存儲(chǔ)在新列表 sorted_numbers 中。

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

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

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

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

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

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

sorted() 函數(shù)的常見應(yīng)用場景

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

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

sorted() 函數(shù)通過指定 key 參數(shù)來定義自定義排序規(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ù),按照元素對 3 取余的結(jié)果進(jìn)行排序,從而實(shí)現(xiàn)了自定義的排序規(guī)則。

2. 排序字典

sorted() 函數(shù)也可以用于對字典的鍵或值進(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è)示例中,分別對字典的鍵和值進(jìn)行排序,并將排序后的結(jié)果存儲(chǔ)在新列表中。

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

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

# 對元組列表按照第二個(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)了對元組列表的排序。

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)定性,即具有相同鍵值的元素在排序后的相對位置保持不變。

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ù)還可以直接對原始數(shù)據(jù)進(jìn)行排序,使用 key 和 reverse 參數(shù)來指定排序規(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() 方法對原始數(shù)據(jù)進(jìn)行排序,指定了 reverse=True 參數(shù),實(shí)現(xiàn)了降序排序。

總結(jié)

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

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

相關(guān)文章

  • python讀取excel文件的方法

    python讀取excel文件的方法

    文章介紹了在Python中讀取Excel文件的兩種方法:使用pandas庫和使用openpyxl庫,pandas適合數(shù)據(jù)分析和處理,而openpyxl提供了更多的Excel文件操作功能,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Python 限制線程的最大數(shù)量的方法(Semaphore)

    Python 限制線程的最大數(shù)量的方法(Semaphore)

    今天小編就為大家分享一篇Python 限制線程的最大數(shù)量的方法(Semaphore),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python實(shí)現(xiàn)登錄與注冊系統(tǒng)

    python實(shí)現(xiàn)登錄與注冊系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)登錄與注冊系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Python?pycharm讀取文件相對路徑與絕對路徑的方法

    Python?pycharm讀取文件相對路徑與絕對路徑的方法

    這篇文章主要給大家介紹了關(guān)于Python?pycharm讀取文件相對路徑與絕對路徑的方法,絕對路徑就是文件的真正存在的路徑,是指從硬盤的根目錄(盤符)開始,進(jìn)行一級級目錄指向文件,相對路徑就是以當(dāng)前文件為基準(zhǔn)進(jìn)行一級級目錄指向被引用的資源文件,需要的朋友可以參考下
    2023-12-12
  • Python彈球小游戲的項(xiàng)目代碼

    Python彈球小游戲的項(xiàng)目代碼

    本文主要介紹了Python彈球小游戲的項(xiàng)目代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python如何根據(jù)字典中的值排序

    Python如何根據(jù)字典中的值排序

    這篇文章主要介紹了Python如何根據(jù)字典中的值排序問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 淺談Keras的Sequential與PyTorch的Sequential的區(qū)別

    淺談Keras的Sequential與PyTorch的Sequential的區(qū)別

    這篇文章主要介紹了淺談Keras的Sequential與PyTorch的Sequential的區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python簡單計(jì)算文件MD5值的方法示例

    Python簡單計(jì)算文件MD5值的方法示例

    這篇文章主要介紹了Python簡單計(jì)算文件MD5值的方法,涉及Python文件讀取、hash運(yùn)算及md5加密等相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Python初學(xué)時(shí)購物車程序練習(xí)實(shí)例(推薦)

    Python初學(xué)時(shí)購物車程序練習(xí)實(shí)例(推薦)

    下面小編就為大家?guī)硪黄狿ython初學(xué)時(shí)購物車程序練習(xí)實(shí)例(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 什么是Python包的循環(huán)導(dǎo)入

    什么是Python包的循環(huán)導(dǎo)入

    在本篇文章里小編給大家整理的是關(guān)于什么是Python包的循環(huán)導(dǎo)入的相關(guān)知識(shí)點(diǎn),有興趣的朋友們可以參考下。
    2020-09-09

最新評論