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


Python sorted()用法及代碼示例


Python sorted() 函數返回一個排序列表。它不僅為列表定義,而且接受任何可迭代對象(列表、元組、字符串等)。

示例

Python3


print(sorted([4, 1, 3, 2]))
輸出
[1, 2, 3, 4]

Python sorted() 函數語法

sorted(iterable, key, reverse)

參數:

  • 可迭代:序列(列表、元組、字符串)或集合(字典、集合、frozenset)或任何其他需要排序的迭代器。
  • 鑰匙(可選的):用作排序比較的鍵或基礎的函數。
  • 撤銷(可選的):如果為 True,則可迭代對象將以相反(降序)順序排序,默認情況下設置為 False。

返回:返回一個列表,其中元素按排序順序排列。

如何在Python中使用sorted()函數?

使用sorted()函數非常簡單。它是 Python 中的內置函數,可與任何可迭代對象一起使用。讓我們通過一個例子更好地理解它:

例子:

Python3


# creating a list 
counting = [4,1,5,2,3] 
#print sorted list 
print(sorted(counting))
輸出
[1, 2, 3, 4, 5]

更多Sorted()函數示例

讓我們看一下sorted()函數的一些用例:

1. 使用sorted()函數對Python列表進行排序

在此示例中,我們對 Python list 應用了排序。

Python3


x = [2, 8, 1, 4, 6, 3, 7] 
  
print("Sorted List returned :", sorted(x)) 
  
print("Reverse sort :", sorted(x, reverse=True)) 
  
print("\nOriginal list not modified :", x) 
輸出
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. 使用sorted()函數對不同數據類型進行排序

在此示例中,我們在不同的數據類型上使用了sorted(),例如列表、tuple、字符串、dictionary、集合和凍結集合。

Python3


# 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)) 
輸出
['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']

3.使用Python進行反向排序sorted()

通過設置按字典順序逆序對字符串進行排序反向=真在sorted()函數中。

Python3


# Python3 code to demonstrate 
# Reverse Sort a String 
# using join() + sorted() + reverse 
    
# initializing string  
test_string = "geekforgeeks"
    
# printing original string  
print("The original string : " + str(test_string)) 
    
# using join() + sorted() + reverse 
# Sorting a string  
res = ''.join(sorted(test_string, reverse = True)) 
        
# print result 
print("String after reverse sorting : " + str(res))
輸出
The original string : geekforgeeks
String after reverse sorting : srokkggfeeee

4.Python Sorted() 與 lambda

在 Python lambda 函數中使用 sorted()。

Python3


import functools 
test_string = "geekforgeeks"
  
print("The original string : " + str(test_string)) 
# using sorted() + reduce() + lambda 
res = functools.reduce(lambda x, y: x + y, 
                       sorted(test_string,  
                              reverse=True)) 
print("String after reverse sorting : " + str(res))
輸出
The original string : geekforgeeks
String after reverse sorting : srokkggfeeee

5. Python 中的 Sorted() 和 len()

在此示例中,我們根據列表的長度對列表進行排序。長度最小的字符串應該排在第一位。

Python3


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

key還可以將用戶定義的函數作為其值作為排序的依據。

例子:

Python3


# 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)) 
輸出
Normal sort : [3, 7, 11, 15]
Sorted with key: [7, 15, 3, 11]

6. 使用sorted()對列表進行升序排序

在my_list 中,我們有一個整數值列表。然後,我們使用排序函數按升序對列表進行排序。 Sorted 函數將要排序的可迭代對象作為其第一個參數,並返回一個包含已排序元素的新列表。

在my_string中,我們有一個字符串。然後,我們使用排序函數對字符串中的字符按升序進行排序。 Sorted 函數將字符串視為可迭代的字符,並返回一個包含已排序字符的新列表。

在my_tuples中,我們有一個包含整數和字符串的元組列表。我們使用排序函數根據每個元組的第二個元素對列表進行排序。為了實現這一點,我們將 lambda 函數作為鍵參數傳遞給排序函數。

Python3


my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5] 
sorted_list = sorted(my_list) 
print(sorted_list)   
  
my_string = "hello, world!"
sorted_string = sorted(my_string) 
print(sorted_string)   
  
my_tuples = [(1, "one"), (3, "three"), (2, "two"), (4, "four")] 
sorted_tuples = sorted(my_tuples, key=lambda x: x[1]) 
print(sorted_tuples)
輸出
[1, 1, 2, 3, 4, 5, 5, 6, 9]
[' ', '!', ',', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

7. 使用sorted()按特定鍵對字典列表進行排序

在此示例中,我們使用特定鍵對字典列表進行排序。

Python3


students = [ 
    {'name': 'John', 'age': 20}, 
    {'name': 'Alice', 'age': 18}, 
    {'name': 'Bob', 'age': 22} 
] 
sorted_students = sorted(students,key=lambda x: x['age']) 
print(sorted_students) 
輸出
[{'name': 'Alice', 'age': 18}, {'name': 'John', 'age': 20}, {'name': 'Bob', 'age': 22}]

8. 對自定義對象列表進行排序

在此示例中,我們將創建一個名為 Person 的自定義類,其中包含兩個實例變量 name 和age,並且我們將創建 Person 類的三個對象並將對象插入到列表中。我們正在使用 Sorted Function 對 Person 的對象進行排序。

Python3


class Person: 
    def __init__(self, name, age): 
        self.name = name 
        self.age = age 
  
    def __repr__(self): 
        return f"Person(name='{self.name}', age={self.age})"
  
  
people = [ 
    Person('John', 25), 
    Person('Alice', 18), 
    Person('Bob', 30) 
] 
sorted_people = sorted(people, key=lambda x: x.age) 
print(sorted_people) 
輸出
[Person(name='Alice', age=18), Person(name='John', age=25), Person(name='Bob', age=30)]

我們已經介紹了 Python 中 sorted() 函數的定義、語法和示例。希望這已經回答了您關於“如何在 Python 中使用排序函數?”的問題。

sorted() 函數不應與 sort() 列表方法混淆,因為它們是不同的。

希望本文能幫助您理解 Python 中的 sorted() 函數。



相關用法


注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Python sorted() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。