為什麼在Python中list.sort()不會傳回已排序的清單?

王林
發布: 2023-09-18 09:29:06
轉載
1135 人瀏覽過

為什麼在Python中list.sort()不會傳回已排序的清單?

範例

在這個範例中,我們先看看 list.sort() 的用法,然後再繼續。在這裡,我們創建了一個列表並使用 sort() 方法按升序排序 -

# Creating a List
myList = ["Jacob", "Harry", "Mark", "Anthony"]

# Displaying the List
print("List = ",myList)

# Sort the Lists in Ascending Order
myList.sort()

# Display the sorted List
print("Sort (Ascending Order) = ",myList)
登入後複製

輸出

List =  ['Jacob', 'Harry', 'Mark', 'Anthony']
Sort (Ascending Order) =  ['Anthony', 'Harry', 'Jacob', 'Mark']
登入後複製

在效能更重要的情況下,僅僅為了排序而複製清單不會被認為是好的,而且是浪費。因此,list.sort() 對清單進行就地排序。此方法不傳回排序列表。這樣,當您需要排序的副本但還需要保留未排序的版本時,您就不會被欺騙而意外覆蓋清單。

使用內建的sorted()函數傳回一個新列表。此函數根據提供的可迭代物件建立一個新列表,對其進行排序並傳回它。

使用sorted()根據值對字典列表進行排序

範例

我們現在已經使用sorted()方法來對字典列表進行排序。

# List of dictionaries
d = [
   {"name" : "Sam", "marks" : 98},
   {"name" : "Tom", "marks" : 93},
   {"name" : "Jacob", "marks" : 97}
]

# Display the Dictionary
print("Dictionary = \n",d)

# Sorting using values with the lambda function
print("Sorted = \n",sorted(d, key = lambda item: item['marks']))
登入後複製

輸出

('Dictionary = \n', [{'name': 'Sam', 'marks': 98}, {'name': 'Tom', 'marks': 93}, {'name': 'Jacob', 'marks': 97}])
('Sorted = \n', [{'name': 'Tom', 'marks': 93}, {'name': 'Jacob', 'marks': 97}, {'name': 'Sam', 'marks': 98}])
登入後複製

以上是為什麼在Python中list.sort()不會傳回已排序的清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!