在 Python 中有兩種按升序或降序對列表進行排序的方法。
sort()
sorted()
如果要對字符串或元組進行排序,請使用 sorted()。
此處提供以下信息。
- 一種對原始列表進行排序的列表類型方法
sort()
- 生成一個新的排序列表,內置函數: .
sorted()
- 如何對字符串和元組進行排序
對原始列表進行排序,列表類型的一個方法:sort()
sort() 是一個列表類型的方法。
原始列表本身被重寫的破壞性過程。
org_list = [3, 1, 4, 5, 2]
org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]
請注意 sort() 返回 None。
print(org_list.sort())
# None
默認為升序。如果要按降序排序,請將參數 reverse 設置為 true。
org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]
生成新的排序列表,內置函數:sorted()
sorted() 是一個內置函數。
當要排序的列表被指定為參數時,返回一個已排序的列表。這是一個無損過程,不會更改原始列表。
org_list = [3, 1, 4, 5, 2]
new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]
與 sort() 一樣,默認值是升序。如果要按降序排序,請將參數 reverse 設置為 true。
new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]
如何對字符串和元組進行排序
由於字符串和元組是不可變的,因此沒有 sort() 方法可用於重寫原始對象。
另一方面, sorted() 函數的參數,它生成一個排序列表作為一個新對象,可以是一個字符串或元組以及一個列表。但是,由於 sorted() 返回的是列表,因此需要將其轉換為字符串或元組。
排序字符串
當一個字符串被指定為 sorted() 函數的參數時,將返回一個列表,其中將排序字符串的每個字符存儲為一個元素。
org_str = 'cebad'
new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']
要將字符串列表連接成單個字符串,請使用 join() 方法。
new_str = ''.join(new_str_list)
print(new_str)
# abcde
如果要按降序排序,請將參數 reverse 設置為 true。
new_str = ''.join(sorted(org_str))
print(new_str)
# abcde
new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba
字符串的大小由字符的 Unicode 代碼點(字符代碼)決定。
排序元組
元組與字符串相同;指定一個元組作為 sorted() 函數的參數返回一個排序的元素列表。
org_tuple = (3, 1, 4, 5, 2)
new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]
要將列表轉換為元組,請使用 tuple()。
new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)
如果要按降序排序,請將參數 reverse 設置為 true。
new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)
new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)