sort() 和 sorted() 都是 Python 中用于排序的函数,它们的主要区别如下:
-
sort() 是列表对象的方法,直接对列表进行排序,不会返回一个新的列表;而 sorted() 是 Python 内置的函数,能够对任何可迭代对象进行排序,并返回一个新的列表。
-
sort() 会改变原来列表的顺序,因此它是原地排序;而 sorted() 不会改变原来列表的顺序,因此它是非原地排序。
-
sort() 没有返回值,因此无法将排序结果赋给一个变量;而 sorted() 会返回一个新的列表,可以将结果赋给一个变量。
# sort() 的使用示例
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5]
lst.sort()
print(lst) # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]
# sorted() 的使用示例
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5]
new_lst = sorted(lst)
print(new_lst) # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]
print(lst) # 输出:[3, 1, 4, 1, 5, 9, 2, 6, 5]
在上面的代码中,sort() 方法直接对列表 lst 进行排序,不会返回一个新的列表,因此最终输出的结果是 [1, 1, 2, 3, 4, 5, 5, 6, 9],而 lst 列表的顺序也被改变成了排序后的顺序。
sorted() 函数对列表 lst 进行排序,并返回一个新的列表,因此最终输出的结果是 [1, 1, 2, 3, 4, 5, 5, 6, 9],而 lst 列表的顺序并没有改变。