一、sort()函數的介紹
sort()是Python內置的排序函數,用於對列表進行排序,排序的方式默認是升序排列。sort()函數有如下常用參數:
- reverse:是否將列表倒序,默認為False(升序排列)
- key:用於比較的函數,例如可以按照字符串長度排序,或者按照自定義函數排序。
sort()函數的使用格式如下:
>>> lst = [3, 1, 4, 1, 5, 9, 2, 6] >>> lst.sort() >>> print(lst) [1, 1, 2, 3, 4, 5, 6, 9]
二、快速排序算法
快速排序是一種比較高效的排序算法,其基本思想是選定一個基準元素,將列表中所有小於基準元素的元素放置在基準元素的左邊,將所有大於基準元素的元素放置在其右邊,然後對左右兩個子列表分別進行遞歸排序,最終得到一個有序列表。
快速排序的時間複雜度為O(nlogn),是一種常用的排序算法。
三、用sort()函數實現快速排序
雖然Python內置了sort()函數,但如果想要自己實現快速排序算法,也是可以的。下面是利用sort()函數實現快速排序的代碼示例:
def quicksort(lst): if len(lst) <= 1: return lst pivot = lst[0] # 選取第1個元素作為基準值 left = [x for x in lst[1:] if x = pivot] return quicksort(left) + [pivot] + quicksort(right) lst = [3, 1, 4, 1, 5, 9, 2, 6] lst = quicksort(lst) print(lst)
代碼中定義了一個名為quicksort()的函數,用於實現快速排序。函數的參數是一個列表lst,函數首先判斷列表長度是否小於等於1,如果是,則直接返回原列表。否則,選取列表第1個元素作為基準值pivot,將列表中所有小於基準值的元素放在left列表中,所有大於等於基準值的元素放在right列表中,最後將排序好的left列表、基準值、排序好的right列表拼接在一起,返回一個有序列表。
四、sort()函數的應用例子
例1:對字典列表按照某個鍵的取值進行排序
persons = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 18}, {'name': 'Chris', 'age': 22}, {'name': 'David', 'age': 30}] sorted_persons = sorted(persons, key=lambda x: x['age']) # 或 persons.sort(key=lambda x: x['age']) print(sorted_persons) # 或 print(persons)
上述代碼中,首先定義了一個字典列表persons,其中每個字典都有’name’和’age’兩個鍵。我們需要按照’age’鍵的取值對列表進行排序。使用sorted()函數並傳遞key參數作為排序關鍵字,或調用sort()函數並傳遞key參數即可。
例2:對字符串列表按照字符串長度排序
words = ['apple', 'pear', 'banana', 'orange'] sorted_words = sorted(words, key=lambda x: len(x)) # 或 words.sort(key=lambda x: len(x)) print(sorted_words) # 或 print(words)
上述代碼中,我們需要按照字符串長度對字符串列表進行排序,同樣使用sorted()函數並傳遞key參數作為排序關鍵字,或調用sort()函數並傳遞key參數即可。
五、總結
sort()函數是Python內置的排序函數,它可以用於對列表中元素進行排序,同時支持升序和降序排列,以及對自定義函數的應用。快速排序算法是一種高效的排序方法,其時間複雜度為O(nlogn),我們可以利用sort()函數來進行快速排序的實現。
原創文章,作者:QIEV,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/146847.html