深入理解python中sort()与sorted()的区别

  • Post category:Python

关于Python中的sort()sorted()两个方法,它们都是用于列表排序的常用方法,但是有一些区别。下面我们将详细讲解它们的区别。

sort()方法

sort()是用于在原列表中对元素进行排序。这个方法最重要的特点是:它无论如何都会修改原来的列表内容。下面是一个示例:

list1 = [3, 5, 2, 1, 4]
list1.sort()
print(list1)

输出结果为:

[1, 2, 3, 4, 5]

可以看到,sort()方法直接对list1中的元素进行了排序,并且输出结果也是修改后的list1。如果你再次调用print(list1),输出的结果仍然是修改后的排序结果。

而且,sort()方法还支持keyreverse两个可选参数。key表示按照指定的键进行排序,而reverse表示是否需要降序排序(默认为升序)。具体示例如下:

list2 = [4, 3, 2, 1, 5]
list2.sort(reverse=True)
print(list2)

输出结果为:

[5, 4, 3, 2, 1]

sorted()函数

相比较而言,sorted()函数就不同了。sorted()函数在进行排序时,不会修改原列表的内容,而是返回一个新的排序后的列表。下面是一个示例:

list3 = [3, 5, 2, 1, 4]
result = sorted(list3)
print(result)

输出结果为:

[1, 2, 3, 4, 5]

可以看到,sorted()函数返回了一个新的列表result,而原来的list3并没有发生变化。

sort()方法一样,sorted()函数也支持keyreverse两个可选参数。具体示例如下:

list4 = [4, 3, 2, 1, 5]
result = sorted(list4, reverse=True)
print(result)

输出结果为:

[5, 4, 3, 2, 1]

总结

综上所述,sort()方法是直接在原列表上进行排序,操作起来简单但是会对原列表进行修改。而sorted()函数则是返回一个新的排好序的列表,不会对原列表进行修改。

最后,需要注意的是,不论是哪一种方法,都只能用于对列表进行排序。如果你需要对其他数据类型进行排序,比如字典或元组,就需要使用其他的方法。