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()函数可以方便地对列表、字符串等进行排序,且不会改变原有的可迭代对象。
