首頁 >後端開發 >Python教學 >排序(Sorted()):我在Python中最喜歡的函數

排序(Sorted()):我在Python中最喜歡的函數

WBOY
WBOY轉載
2023-09-05 20:21:031331瀏覽

排序(Sorted()):我在Python中最喜歡的函數

簡介

在 Python 中,sorted() 函數是開始排序時需要了解的最基本但有用的方法之一。此函數可用於對可迭代物件的元素進行排序,例如列表、字串等。此函數對字串和數字進行排序。預設情況下,它按升序排序,但也可以按降序排序。

Sorted()函數的使用方法

  • 使用Sorted()函數對數字進行排序

  • #對清單、元組、集合和字典進行排序

  • #對字串進行排序

  • #在 lambda 函數內排序

方法1:使用Sorted()函數對數字進行排序

sorted() 函數最基本的實作是對整數集合(有符號或無符號)進行排序。這可以按升序或降序進行。

文法

print(sorted([n1, n2, n3, n4]))

語法非常簡單。我們只需將要排序的數字作為排序函數的參數,它就會按排序順序傳回數字。要按降序排序,我們需要在數字列表後面加上“反向”一詞。這裡需要注意的一件事是,數字必須放置在可迭代容器中才能使該方法發揮作用。

演算法

步驟1 - 呼叫sorted()函數

第二步 - 將數字清單作為參數傳遞,並在需要時使用「reverse」關鍵字

第三步驟 - 返回或列印輸出

Example

的中文翻譯為:

範例

print(sorted([4, 1, 3, 2]))

輸出

[1, 2, 3, 4] 

方法二:對列表、元組、集合和字典進行排序

序列的內容(如列表、元組、字串)和集合(如集合、凍結集和資料集)的內容可以使用sorted()方法進行排序。該函數是Python內建程式庫的一部分,因此無需編寫大量程式碼即可輕鬆對內容進行排序。

文法

define x=container/set
return(sorted(x))

這種簡單的語法是我最喜歡sorted()函數的原因之一,而且非常容易應用。為了對任何類型的迭代器的內容進行排序,我們首先聲明迭代器,例如列表、集合等。然後將此迭代器傳遞給函數,函數然後傳回排序後的內容。

演算法

步驟 1 - 使用要排序的元素初始化迭代器

第2步 - 將迭代器作為參數傳遞給sorted()方法,以及鍵和升序或降序確認

第 3 步 - 列印或傳回值

#Example

的中文翻譯為:

範例

# List
x = ['z', 'g', 'e', 'o', 't', 'y']
print(sorted(x))

# Tuple
x = ('z', 'g', 'e', 'o', 'd', 'k')
print(sorted(x))

# Dictionary
x = {'z': 1, 'p': 2, 'e': 12, 'h': 8, 'k': 7, 'y': 3}
print(sorted(x))

# Set
x = {'x', 'w', 'h', 'd', 'k', 'b'}
print(sorted(x))

# Frozen Set
x = frozenset(("v", "m", "d", "u", "s", "c"))
print(sorted(x))

輸出

['e', 'g', 'o', 't', 'y', 'z']
['d', 'e', 'g', 'k', 'o', 'z']
['e', 'h', 'k', 'p', 'y', 'z']
['b', 'd', 'h', 'k', 'w', 'x']
['c', 'd', 'm', 's', 'u', 'v'] 

方法三:字串排序

sorted() 函數的可用性不僅限於數字,還可以用於字串。字串可以使用 ASCII 值按字典順序排序,並且可以按升序和降序排序。這樣,我們還可以在排序後對字串進行反轉或執行其他應用。

文法

res = ''.join(sorted(test_string, reverse = True))

這是反轉字串的語法,我們使用了join函數和sorted()方法,同時將reverse標誌設為True。這確保了字串被反轉,並按降序排序。

演算法

第 1 步− 初始化字串以進行反轉

步驟2 - 呼叫join()和sorted()方法

步驟3 - 將字串和反向標誌傳遞給sorted()函數

Example

的中文翻譯為:

範例

test_string = "tutorialspoint"
print("The original string : " + str(test_string))
res = ''.join(sorted(test_string, reverse = True))
print("String after reverse sorting : " + str(res))

輸出

The original string : tutorialspoint
String after reverse sorting : utttsrpoonliia 

方法4:在lambda函數內部進行排序

Lambda函數是Python中的一類匿名函數。它們使用lambda關鍵字聲明,並且只能包含一個表達式,但可以包含無限數量的參數。

文法

res = functools.reduce(lambda x, y: x + y,
 sorted(test_string, reverse=True))

透過上面的語法可以觀察到對測試字串進行排序並反轉的結果,其中我們使用了reduce()函數。排序函數用於執行實際排序,而 lambda 函數接受兩個輸入並傳回其總和作為函數輸出。

演算法

第 1 步 - 導入 functools 模組

第 2 步 - 定義測試字串

步驟3 - 根據語法將測試字串傳遞給reduce()函數

第四步驟 - 列印反轉後的字串

Example

的中文翻譯為:

範例

# import the module
import functools
test_string = "tutorialspoint"
print("The original string : " + str(test_string))
res = functools.reduce(lambda x, y: x + y,  sorted(test_string,  reverse=True))
print("String after reverse sorting : " + str(res))

輸出

The original string : tutorialspoint
String after reverse sorting : utttsrpoonliia 

結論

在本文中,我們了解了sorted()函數的各種用法。該功能的多樣化和簡單的應用使其非常適合在許多過程中進行初步使用。該函數可能還有其他幾個用例,儘管這裡無法討論所有這些用例。我希望這篇文章對學習 Python 中一個非常有用的函數有所幫助!

以上是排序(Sorted()):我在Python中最喜歡的函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除