注:本文为转载,如有侵权请告知,将予以删除
原文:https://blog.csdn.net/sinat_35512245/article/details/79584196
今天在LeetCode上刷题的时候要用到排序函数,刚开始并没有意识到这两个排序函数的区别,导致产生了代码错误,特贴此帖。
首先这两个函数都能够实现排序的功能,但是原理却有很多的不同。先看如下代码:
输出的结果是:
有木有感到很奇怪,为什么listA的值变成了排序后的结果,但是newList_1却是None呢?查看源码:
原来sort()方法是在原来的列表上直接进行排序,并没有返回一个新的列表,所以返回值为None!
再看看:
输出的结果是:
有木有很神奇?listA并没有发生变化,但是返回的结果就成了排序后的列表。再来看看源码:
由以上可知,sorted()函数排好序后会返回一个新的列表,原来的列表并没有发生改变!