<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在 Python 中,你可以使用 sorted() 方法或 sort() 方法對資料進行排序。
在本文中,我將提供 sorted() 和 sort() 方法的程式碼範例,並解釋兩者之間的區別。
此方法接受一個列表並對其進行排序。但,請記住此方法沒有返回值,即返回None。
下面例子中,我們有一個數位列表,我們可以使用 sort() 方法按升序對列表進行排序。
my_list = [67, 2, 999, 1, 15] # 輸入未排序列表 print("Unordered list: ", my_list) # sort() 方法本地排序列表my_list,預設從小到達 my_list.sort() # this prints the ordered list print("Ordered list: ", my_list)
輸出:
Unordered list: [67, 2, 999, 1, 15]
Ordered list: [1, 2, 15, 67, 999]
注意: my_list.sort() 是對列表 my_list僅本地排序,返回返回為 None。
如下程式碼:
my_list_1 = [6, 7, 8, 9, 10] print(my_list_1.sort()) # my_list_1 已排序,返回為None my_list_2 = [6, 7, 8, 9, 10] print(my_list_2.sort()) # my_list_2 未排序,返回依然為None,但my_list_2 已經被改變了
輸出:
None
None
繼續思考!sort()預設為升序排序,如果想降序排序了?
其實sort() 方法可以接受兩個可選引數,稱為 key 和 reverse。
key 具有將在列表中的每個專案上呼叫的函數的值。
在這個例子中,我們可以使用 len() 函數作為 key 引數的值。key=len 將告訴計算機按長度從最小到最大對名稱列表進行排序。
names = ["Jessica", "Ben", "Carl", "Jackie", "Wendy"] print("Unsorted: ", names) names.sort(key=len) print("Sorted: ", names)
輸出:
Unsorted: ['Jessica', 'Ben', 'Carl', 'Jackie', 'Wendy']
Sorted: ['Ben', 'Carl', 'Wendy', 'Jackie', 'Jessica']
reverse 有兩個布林值,True 或 False。
在這個例子中,reverse=True 將告訴計算機以逆字母順序對列表進行排序。
names = ["Jessica", "Ben", "Carl", "Jackie", "Wendy"] print("Unsorted: ", names) names.sort(reverse=True) print("Sorted: ", names) Unsorted: ['Jessica', 'Ben', 'Carl', 'Jackie', 'Wendy'] Sorted: ['Wendy', 'Jessica', 'Jackie', 'Carl', 'Ben']
此方法將從可迭代物件返回一個新的排序列表。可迭代物件包括列表、字串和元組等等。
sort() 和 sorted() 之間的一個主要區別是 sorted() 將返回一個新列表,而 sort() 對列表進行原地排序。
請記住: sorted() 將返回一個新列表,而 sort() 對列表進行原地排序。
在這個例子中,我們有一個按升序排序的數位列表。
sorted_numbers = sorted([77, 22, 9, -6, 4000]) print("升序排序: ", sorted_numbers)
輸出:
升序排序: [-6, 9, 22, 77, 4000]
前方高能,繼續深挖sorted()!
sorted() 方法還接受可選的 key 和 reverse 引數。
在這個例子中,我們有一個按降序排序的數位列表。reverse=True 告訴計算機將列表從最大到最小反轉。
sorted_numbers = sorted([77, 22, 9, -6, 4000], reverse=True) print("降序排序: ", sorted_numbers)
輸出:
降序排序: [4000, 77, 22, 9, -6]
sorted() 和 sort() 之間的另一個主要區別是 sorted() 方法接受任何可迭代物件,而 sort() 方法僅適用於列表。
在此範例中,我們使用 split() 方法將字串分解為單個單詞。然後我們使用 sorted() 按長度從最小到最大對單詞進行排序。
my_sentence = "i love python! you like what?" print("原字串: ", my_sentence) print(sorted(my_sentence.split(), key=len))
輸出:
['i', 'you', 'love', 'like', 'what?', 'python!']
我們還可以修改此範例,幷包含 key 和 reverse 引數。
這個修改後的範例現在將從最大到最小對列表進行排序。
my_sentence = "i love python! you like what?" print("原字串: ", my_sentence) print(sorted(my_sentence.split(), key=len, reverse=True))
輸出:
['python!', 'what?', 'love', 'like', 'you', 'i']
我們還可以對元組使用 sorted() 方法。
在這個例子中,我們有一個代表樂隊學生姓名、年齡和樂器的元組集合。
band_students = [ ('Danny', 17, 'Trombone'), ('Mary', 14, 'Flute'), ('Josh', 15, 'Percussion') ]
我們可以使用 sorted() 方法按學生的年齡對這些資料進行排序。該鍵具有 lambda 函數的值,該函數告訴計算機按年齡升序排序。
lambda 函數是沒有名稱的匿名函數。你可以使用 lambda 關鍵字來定義這種型別的函數。
lambda student: student[1]
要存取元組中的值,請使用括號表示法和要存取的索引號。由於我們從零開始計數,因此年齡值為 [1]。
這是完整的範例。
band_students = [ ('Danny', 17, 'Trombone'), ('Mary', 14, 'Flute'), ('Josh', 15, 'Percussion') ] print(sorted(band_students, key=lambda student: student[1]))
輸出:
[('Mary', 14, 'Flute'), ('Josh', 15, 'Percussion'), ('Danny', 17, 'Trombone')]
我們可以修改此範例,並改為按樂器對資料進行排序。我們可以使用 reverse 通過反向字母順序對工具進行排序。
band_students = [ ('Danny', 17, 'Trombone'), ('Mary', 14, 'Flute'), ('Josh', 15, 'Percussion') ] print(sorted(band_students, key=lambda student: student[2], reverse=True))
輸出:
[('Danny', 17, 'Trombone'), ('Josh', 15, 'Percussion'), ('Mary', 14, 'Flute')]
在本文中,我們學習瞭如何使用 Python 的 sort() 和 sorted() 方法。
sort() 方法僅適用於列表,並對列表進行排序。它沒有返回值。
sorted() 方法適用於任何可迭代物件,並返回一個新的排序列表。可迭代物件的範例包括列表、字串和元組。
這兩種方法都有 key 和 reverse 兩個可選引數。
key 具有將在列表中的每個專案上呼叫的函數的值。
reverse 的布林值為 True 或 False。
此方法接受一個列表並對其進行排序。但,請記住此方法沒有返回值。
到此這篇關於詳解Python中sorted()和sort()的使用與區別的文章就介紹到這了,更多相關Python sorted() sort()內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45