Python 中按字母順序對列表進行排序

Manav Narula 2023年1月30日 2021年2月7日
  1. 在 Python 中使用 sort() 方法按字母順序對列表進行排序
  2. 在 Python 中使用 sorted() 函式按字母順序對列表進行排序
  3. 在 Python 中使用快速排序演算法按字母順序對列表進行排序
Python 中按字母順序對列表進行排序

在本教程中,我們將討論如何使用 sort()sorted() 函式對包含字串的列表按字母順序排序,並使用快速排序演算法。

sort()sorted() 都可以執行相同的功能,它們之間的主要區別是 sort() 函式對原始列表進行排序,而 sorted() 函式則建立一個新的列表。

在 Python 中使用 sort() 方法按字母順序對列表進行排序

列表物件的 sort() 方法用於對列表進行排序。預設情況下,它按升序對列表進行排序。例如,在列表物件中的 sort() 方法,它按升序排列。

my_list = ['Jack', 'Sam', 'Jay', 'Mark','Baron']
my_list.sort()
print(my_list)

輸出:

['Baron', 'Jack', 'Jay', 'Mark', 'Sam']

要以相反的順序對列表進行排序,我們可以使用 reverse 引數並將其設定為 True。預設情況下,它是 False。例如:

my_list = ['Jack', 'Sam', 'Jay', 'Mark','Baron']
my_list.sort(reverse = True)
print(my_list)

輸出:

['Sam', 'Mark', 'Jay', 'Jack', 'Baron']

請注意,排序列表的順序已經反過來了。我們也可以使用 key 引數指定排序的條件。在下面的程式碼中,我們將根據每個元素的字串長度以升序排列列表。

my_list = ['Jack', 'Sam', 'Jay', 'Mark','Baron']
my_list.sort(key = len)
print(my_list)

輸出:

['Sam', 'Jay', 'Mark', 'Jack', 'Baron']

在 Python 中使用 sorted() 函式按字母順序對列表進行排序

sorted() 函式也是按要求的順序對列表進行排序,但它建立的是一個新列表,並不改變原來的列表。如果要按升序字母排序,我們只需將其傳遞給函式,如下圖所示。

my_list = ['Jack', 'Sam', 'Jay', 'Mark','Baron']
sorted_list = sorted(my_list)
print(sorted_list)

輸出:

['Baron', 'Jack', 'Jay', 'Mark', 'Sam']

sort() 方法類似,我們可以使用 reverse 引數按降序排序。例如,我們可以使用 reverse 引數進行降序排序。

my_list = ['Jack', 'Sam', 'Jay', 'Mark','Baron']
sorted_list = sorted(my_list,reverse = True)
print(sorted_list)

輸出:

['Sam', 'Mark', 'Jay', 'Jack', 'Baron']

我們也可以像使用 sort()函式那樣,使用 key 引數指定排序條件。例如:

my_list = ['Jack', 'Sam', 'Jay', 'Mark','Baron']
sorted_list = sorted(my_list,reverse = True, key = len)
print(sorted_list)

輸出:

['Baron', 'Mark', 'Jack', 'Sam', 'Jay']

在 Python 中使用快速排序演算法按字母順序對列表進行排序

我們還可以使用快速排序演算法對列表進行排序。這種方法可能是非常規的,但值得注意的是,其他排序技術,如合併排序、選擇排序、插入排序、堆排序和氣泡排序也可以實現這一目的。下面的程式碼顯示了一個在 Python 中實現快速方法對列表進行排序的函式。

my_list = ['Jack', 'Sam', 'Jay', 'Mark','Baron']

def quicksort(lst):
    if not lst:
        return []
    return (quicksort([x for x in lst[1:] if x <  lst[0]])
            + [lst[0]] +
            quicksort([x for x in lst[1:] if x >= lst[0]]))


print(quicksort(my_list))

輸出:

['Baron', 'Jack', 'Jay', 'Mark', 'Sam']
Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python List