當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Sorted()用法及代碼示例


在Python中,使用內置方法sorted()對任何序列進行排序非常容易,它可以為您完成所有艱苦的工作。
Sorted()對任何序列(列表,元組)進行排序,並始終以排序方式返回包含元素的列表,而無需修改原始序列。

用法:排序(可迭代,鍵,反向)

參數:sorted需要三個參數,其中兩個是可選參數。


  • Iterable:序列(列表,元組,字符串)或集合(字典,集合,frozenset)或任何其他需要排序的迭代器。
  • Key(可選):將用作鍵或排序比較基礎的函數。
  • Reverse(可選):如果設置為true,則可迭代對象將以反向(降序)排序,默認情況下將其設置為false。

例子1

x = [2, 8, 1, 4, 6, 3, 7] 
  
print "Sorted List returned:", 
print sorted(x) 
  
print "\nReverse sort:", 
print sorted(x, reverse = True) 
  
print "\nOriginal list not modified:", 
print x
Output:
Sorted List returned:[1, 2, 3, 4, 6, 7, 8]

Reverse sort:[8, 7, 6, 4, 3, 2, 1]

Original list not modified:[2, 8, 1, 4, 6, 3, 7]

示例2:排序不同的數據類型

# List 
x = ['q', 'w', 'r', 'e', 't', 'y'] 
print sorted(x) 
  
# Tuple 
x = ('q', 'w', 'e', 'r', 't', 'y') 
print sorted(x) 
  
# String-sorted based on ASCII translations 
x = "python"
print sorted(x) 
  
# Dictionary 
x = {'q':1, 'w':2, 'e':3, 'r':4, 't':5, 'y':6} 
print sorted(x) 
  
# Set 
x = {'q', 'w', 'e', 'r', 't', 'y'} 
print sorted(x) 
  
# Frozen Set 
x = frozenset(('q', 'w', 'e', 'r', 't', 'y')) 
print sorted(x)
Output:
['e', 'q', 'r', 't', 'w', 'y']
['e', 'q', 'r', 't', 'w', 'y']
['h', 'n', 'o', 'p', 't', 'y']
['e', 'q', 'r', 't', 'w', 'y']
['e', 'q', 'r', 't', 'w', 'y']
['e', 'q', 'r', 't', 'w', 'y']

使用key參數進行自定義排序
sorted()函數具有一個稱為“鍵”的可選參數,該參數將一個函數作為其值。此鍵函數在排序之前轉換每個元素,它獲取值並返回1個值,該值隨後在排序中使用,而不是原始值。

例如,如果我們在sorted()中傳遞字符串列表,則會按字母順序對其進行排序。但是如果我們指定key = len,即給len函數作為key,那麽字符串將被傳遞給len,並返回其值,即字符串的長度將被排序。這意味著將根據字符串的長度對字符串進行排序

L = ["cccc", "b", "dd", "aaa"] 
  
print "Normal sort:", sorted(L) 
  
print "Sort with len:", sorted(L, key = len)
Output:
Normal sort:['aaa', 'b', 'cccc', 'dd']
Sort with len:['b', 'dd', 'aaa', 'cccc']

鍵還以用戶定義的函數為其排序基礎的值。

# Sort a list of integers based on 
# their remainder on dividing from 7 
  
def func(x):
    return x % 7
  
L = [15, 3, 11, 7] 
  
print "Normal sort:", sorted(L) 
print "Sorted with key:", sorted(L, key = func)
Output:
Normal sort:[3, 7, 11, 15]
Sorted with key:[7, 15, 3, 11]


相關用法


注:本文由純淨天空篩選整理自 Sorted() function in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。