在 Python 中對集合進行排序

Hemank Mehtani 2023年1月30日
  1. 在 Python 中使用 sorted() 函式對集合進行排序
  2. 在 Python 中使用 sort() 方法對集合進行排序
在 Python 中對集合進行排序

集合是一個無序且無索引的集合,沒有重複的元素。集合是 Python 中可用的四種內建資料型別之一,使用大括號編寫。

鑑於集合是無序的,不可能對集合的值進行排序。但是,如果我們列印一個集合,它會以排序的方式顯示。

請參考下面的程式碼。

s = {5, 2, 7, 1, 8}
print(s)

輸出:

{1, 2, 5, 7, 8}

如果我們願意,我們可以使用不同的函式對一個集合進行排序並返回一個列表。這些將在下面討論。

在 Python 中使用 sorted() 函式對集合進行排序

sorted() 函式是 Python 中的內建函式,它以列表的形式返回已排序的序列(列表、元組、字串)或已排序的集合(集合、字典)。sorted() 函式對原始可迭代序列沒有影響,因為它提供了一個新的排序輸出。

例如,

s = {5, 2, 7, 1, 8}
print(sorted(s))

輸出:

[1, 2, 5, 7, 8]

請注意,sorted() 函式返回一個列表而不是一個集合。我們可以再次使用 set() 函式將此列表轉換為集合。然而,這是多餘的,因為集合是無序的。

在 Python 中使用 sort() 方法對集合進行排序

sort() 方法用於按升序或降序對列表中給定的元素進行排序。這是一個破壞性的過程,即與 sorted() 函式不同,sort() 方法對原始列表本身中的元素進行排序。

我們不能在集合中使用這個函式。但是,我們可以將一個集合包含在一個列表中,它會對它們進行排序。

例如,

s = [{5, 2, 7, 1, 8}]
s.sort()
print(s)

輸出:

[{1, 2, 5, 7, 8}]

請注意,sort() 函式還會返回列表中的最終輸出。我們也可以對 sorted() 函式採取類似的方法。

另一方面,我們可以使用 list() 函式將集合轉換為列表,並使用此方法對其進行排序。

請參考下面的程式碼。

s = {5, 2, 7, 1, 8}
l = list(s)
l.sort()
print(l)

輸出:

[1, 2, 5, 7, 8]