sorted() 函数和sort()函数的区别
在Python中,sorted()
函数和列表的 sort()
方法都用于排序,但它们之间有一些关键的区别:
-
返回值:
sorted()
:返回一个新的列表,包含所有排序后的元素,原始列表不会被修改。sort()
:对列表进行就地排序,即直接在原列表上进行排序,不返回新的列表(返回值为None
)。
-
适用对象:
sorted()
:适用于任何可迭代对象,包括列表、元组、字符串等。sort()
:仅适用于列表。
-
内存使用:
sorted()
:因为返回一个新的列表,所以会占用额外的内存。sort()
:因为就地排序,所以不会占用额外的内存。
-
用法:
sorted()
:作为一个函数调用,可以接受任何可迭代对象作为参数。sort()
:作为列表的一个方法调用,只能用于列表。
# 使用 sorted() original_list = [3, 1, 4, 1, 5, 9, 2, 6, 5] sorted_list = sorted(original_list) print(sorted_list) # [1, 1, 2, 3, 4, 5, 5, 6, 9] print(original_list) # [3, 1, 4, 1, 5, 9, 2, 6, 5],原始列表未改变# 使用 sort() original_list = [3, 1, 4, 1, 5, 9, 2, 6, 5] original_list.sort() print(original_list) # [1, 1, 2, 3, 4, 5, 5, 6, 9],原始列表被修改