当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。