欢迎访问宙启技术站
智能推送

Python内置函数之sorted()用于对可迭代对象进行排序

发布时间:2023-07-01 14:41:57

Python内置函数sorted()用于对可迭代对象进行排序。它返回一个新的已排序的列表,而不会改变原有的可迭代对象。

sorted()函数的语法如下:

sorted(iterable, key=None, reverse=False)

参数说明:

- iterable:表示可迭代对象,例如列表、元组、字符串等。对列表进行排序时,会返回一个新的已排序的列表。对字符串进行排序时,会返回一个新的字符串。

- key:表示用于排序的函数。可以自定义一个函数,在排序过程中使用该函数对元素进行操作后再进行比较。默认值为None,表示按照元素的原始值进行排序。

- reverse:表示是否按照降序进行排序。默认值为False,表示按照升序进行排序。

sorted()函数的工作过程:

1. 首先确定排序的顺序,默认为升序,也可以通过设置reverse参数为True来进行降序排序。

2. 如果指定了key参数,那么在比较元素的过程中会先将元素传入key函数进行处理,再进行比较。

3. 如果没有指定key参数,则直接比较元素的原始值。

下面是一些使用sorted()函数的示例:

1. 对列表进行排序:

numbers = [6, 2, 9, 1, 7]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出:[1, 2, 6, 7, 9]

2. 对字符串进行排序:

string = 'Python'
sorted_string = sorted(string)
print(''.join(sorted_string))  # 输出:Phnoty

3. 自定义排序函数:

students = [('John', 20), ('Alice', 18), ('Tom', 22)]
sorted_students = sorted(students, key=lambda x: x[1])  # 按照年龄进行排序
print(sorted_students)  # 输出:[('Alice', 18), ('John', 20), ('Tom', 22)]

4. 降序排序:

numbers = [6, 2, 9, 1, 7]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)  # 输出:[9, 7, 6, 2, 1]

需要注意的是,sorted()函数返回的是一个新的已排序的列表,原有的可迭代对象并没有发生改变。如果希望对原有的列表进行排序,可以使用列表的sort()方法。

总结:

sorted()函数是Python内置的用于对可迭代对象进行排序的函数。它可以按照升序或降序对元素进行排序,并且可以通过指定key参数来自定义排序规则。使用sorted()函数可以方便地对列表、字符串等进行排序,且不会改变原有的可迭代对象。