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

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()函数。