关于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()
方法还支持key
和reverse
两个可选参数。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()
函数也支持key
和reverse
两个可选参数。具体示例如下:
list4 = [4, 3, 2, 1, 5]
result = sorted(list4, reverse=True)
print(result)
输出结果为:
[5, 4, 3, 2, 1]
总结
综上所述,sort()
方法是直接在原列表上进行排序,操作起来简单但是会对原列表进行修改。而sorted()
函数则是返回一个新的排好序的列表,不会对原列表进行修改。
最后,需要注意的是,不论是哪一种方法,都只能用于对列表进行排序。如果你需要对其他数据类型进行排序,比如字典或元组,就需要使用其他的方法。