列表排序:Python的sort、sorted和numpy.argsort方法詳解
在Python程式設計中,經常需要對清單或陣列進行排序操作。 Python提供了多種排序方法,包括sort、sorted和numpy.argsort等。本文將詳細介紹這些排序方法的使用方法和注意事項。
一、sort方法
sort方法是Python列表中內建的方法,可以對列表進行原地排序(即有傳回值但不產生新的排序物件),不需要額外的導入庫。 sort方法的參數有兩個:key和reverse。 key表示排序時使用的按鍵,reverse表示是否進行倒序排序。例如:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] my_list.sort() print(my_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] my_list.sort(reverse=True) print(my_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1] my_list = ["apple", "banana", "cherry", "orange"] my_list.sort(key=lambda x: len(x)) print(my_list) # 输出 ["apple", "cherry", "orange", "banana"]
以上例子中,第一個例子對整數列表進行排序,第二個例子進行倒序排序,第三個例子使用了lambda表達式對字串列表按長度排序。
要注意的是,sort方法是原地排序,也就是會改變原有列表的順序,回傳值是None,所以不能直接對排序後的列表執行操作,需要在排序前先建立一個副本或使用其他方法儲存排序後的結果。
二、sorted函數
sorted函數是Python內建的函數,可以對列表、元組、字串等排序,並且傳回一個新的排序後的對象,不改變原始輸入對象。 sorted函數的參數與sort方法相同,包括key和reverse。例如:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] new_list = sorted(my_list) print(new_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] new_list = sorted(my_list, reverse=True) print(new_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1] my_list = ["apple", "banana", "cherry", "orange"] new_list = sorted(my_list, key=lambda x: len(x)) print(new_list) # 输出 ["apple", "cherry", "orange", "banana"]
sorted函數的傳回值可以是清單、元組、字串等類型,根據輸入類型決定傳回結果的類型。
三、numpy.argsort方法
numpy.argsort方法是numpy中的方法,主要用來對numpy陣列進行排序。 argsort方法傳回排序後的下標。 numpy.argsort方法的參數也是key和reverse。例如:
import numpy as np my_array = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]) sort_index = np.argsort(my_array) print(sort_index) # 输出 [1 3 6 0 9 2 4 8 7 5 10] sort_index = np.argsort(-my_array) print(sort_index) # 输出 [5 7 4 2 0 3 6 8 9 1 10] my_array = np.array(["apple", "banana", "cherry", "orange"]) sort_index = np.argsort([len(x) for x in my_array]) print(sort_index) # 输出 [0 2 3 1]
以上範例中,第一個範例對numpy陣列進行升序排序,並傳回排序後的下標。第二個例子進行降序排序,需要對陣列取相反數。第三個例子對字串數組依長度排序。
要注意的是,numpy.argsort方法傳回的是下標列表,需要透過下標來取得排序結果。
總結:
本文主要介紹了Python中的sort、sorted和numpy.argsort方法,這些方法可用於對Python中的列表和陣列進行排序。其中sort方法和sorted函數可以對Python內建的物件進行排序,numpy.argsort方法則是numpy中的方法,主要用於對numpy陣列進行排序。這些方法都可以使用key和reverse等參數來控制排序行為,並且應依需求選用不同的排序方法。
以上是列表排序:Python的sort、sorted和numpy.argsort方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

C++sort函數底層採用歸併排序,其複雜度為O(nlogn),並提供不同的排序演算法選擇,包括快速排序、堆排序和穩定排序。

Uniapp是一款跨平台的開發框架,其強大的跨端能力使得開發者可以快速方便地開發出各種應用。在Uniapp中實現拖曳排序和拖曳操作也是非常簡單的,並且可以支援多種組件和元素的拖曳操作。本文將介紹如何使用Uniapp實作拖曳排序和拖曳操作,並提供具體的程式碼範例。拖曳排序功能在許多應用中都非常常見,例如可以用於實現清單的拖曳排序,圖示的拖曳排序等。下面我們以列表

標題:C#中使用Array.Sort函數對陣列進行排序的範例正文:在C#中,陣列是一種常用的資料結構,經常需要對陣列進行排序運算。 C#提供了Array類,其中有Sort方法可以方便地對陣列進行排序。本文將示範如何使用C#中的Array.Sort函數對陣列進行排序,並提供具體的程式碼範例。首先,我們要先了解Array.Sort函數的基本用法。 Array.So

範例在這個範例中,我們先來看看list.sort()的用法,然後再繼續。在這裡,我們建立了一個清單並使用sort()方法按升序排序-#CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)#SorttheListsinAscendingOrdermyList .sort(

概念1、Sorted是中間操作,傳回排列順序的Stream。如果不輸入自訂的Comparator,這些要素將按自然順序排列。使用注意2、在執行Sorted操作之後,stringCollection中元素的順序沒有改變。 Sorted只對流中的元素進行排序,而不會改變原始集合中元素的順序。實例stringCollection.stream().sorted().filter((s)->s.startsWith("a")).forEach(System.out::printl

如何使用C#中的List.Sort函數對列表進行排序在C#程式語言中,我們經常需要對列表進行排序操作。而List類別的Sort函數正是為此設計的強大工具。本文將介紹如何使用C#中的List.Sort函數對清單進行排序,並提供具體的程式碼範例,幫助讀者更好地理解並應用該函數。 List.Sort函數是List類別的一個成員函數,用來對清單中的元素進行排序。該函數接

PHP8.1新增的數位排序函數PHP是一種廣泛使用的開源腳本語言,常用於Web開發。它不僅功能強大,還擁有豐富的內建函數庫。在最近發布的PHP8.1版本中,又新增了一些有趣的特性和函數,其中包含了數字排序函數。這些新函數可以使開發者更方便地對數字數組進行排序操作,提高開發效率和程式碼可讀性。在過去的PHP版本中,我們通常會使用sort()或rsort()函數對數

使用PHP函數"sort"將陣列依升序排序在PHP中,可以很方便地使用內建函數來對陣列進行排序。其中,sort函數是最常用的函數之一,可以將陣列依照升序進行排序。本文將介紹如何使用sort函數,並給出對應的程式碼範例。 sort函數的語法如下:sort(array&$array,int$sort_flags=SORT_REGULAR):boo
