Python列表的sort()函数和sorted()函数的区别
发布时间:2023-11-17 23:41:27
Python中列表的sort()函数和sorted()函数都可以用来对列表进行排序,但是它们有一些区别。
1. sort()函数是应用在列表上的方法,作用是对原列表进行排序,即在原地进行排序,不会返回新的列表。而sorted()函数是一个内置函数,用于对任意可迭代对象进行排序,包括列表、元组、字符串等,它会返回一个新的列表。
2. sort()函数没有返回值,它直接修改原列表的顺序。对原列表的操作会直接改变它的顺序,不会创建新的对象。而sorted()函数会返回一个新的列表,原列表的顺序不会改变。
下面通过示例进一步说明两者的区别:
# sort()函数示例 numbers = [9, 5, 7, 1, 3] numbers.sort() print(numbers) # 输出: [1, 3, 5, 7, 9] # sorted()函数示例 numbers = [9, 5, 7, 1, 3] sorted_numbers = sorted(numbers) print(sorted_numbers) # 输出: [1, 3, 5, 7, 9] print(numbers) # 输出: [9, 5, 7, 1, 3]
3. sort()函数默认按照元素的大小进行升序排序,如果需要按照其他方式排序,可以使用参数进行配置。例如,可以使用reverse=True来进行降序排序。而sorted()函数可以通过设置reverse=True参数进行降序排序,或者通过key参数传入一个函数来指定排序的规则。
numbers = [9, 5, 7, 1, 3] # sort()函数降序排序 numbers.sort(reverse=True) print(numbers) # 输出: [9, 7, 5, 3, 1] # sorted()函数降序排序 sorted_numbers = sorted(numbers, reverse=True) print(sorted_numbers) # 输出: [9, 7, 5, 3, 1] # sorted()函数根据元素的绝对值进行排序 sorted_numbers = sorted(numbers, key=abs) print(sorted_numbers) # 输出: [1, 3, 5, 7, 9]
4. 另一个区别是sort()函数是一个列表的方法,只能用于列表对象。而sorted()函数是一个内置函数,可以用于任意可迭代对象。
综上所述,sort()函数用于原地对列表进行排序,不会返回新的列表,而sorted()函数返回一个新的排序后的列表。对于需要保留原列表的顺序并得到新的排序结果,可以使用sorted()函数。而对于不需要保留原列表顺序且不需要返回结果的情况,可以使用sort()函数。
