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()用法及代码示例
- Python sorted()和sort()用法及代码示例
- Python sorted方法用法及代码示例
- Python sort()用法及代码示例
- Python socket.create_server用法及代码示例
- Python socket.getaddrinfo用法及代码示例
- Python socket.socket.recvmsg用法及代码示例
- Python socket.socket.recvmsg_into用法及代码示例
- Python socket.socket.sendmsg用法及代码示例
- Python staticmethod()用法及代码示例
- Python set()用法及代码示例
- Python setattr()用法及代码示例
- Python slice()用法及代码示例
- Python str()用法及代码示例
- Python sum()用法及代码示例
- Python super()用法及代码示例
- Python strip()用法及代码示例
- Python sympy.gammasimp()用法及代码示例
- Python shutil.chown()用法及代码示例
- Python shutil.copy()用法及代码示例
- Python shutil.copy2()用法及代码示例
- Python shutil.copyfile()用法及代码示例
- Python shutil.copyfileobj()用法及代码示例
- Python shutil.copymode()用法及代码示例
- Python shutil.copystat()用法及代码示例
注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Python sorted() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。