Python中的 sort 和 sorted的用法与区别
今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别
1.sort:
sort是Python中列表的方法
sort()方法语法:
list.sort(key=None,reverse=False)
有两个参数,这里不讲第一个参数,第二个参数当reverse=True时为降序排列,reverse=False为升序排列,默认reverse=False
重要:该方法没有返回值,也就是返回值为None,而我也正是在这里犯错了
代码案例:
"""test""" a=[4,5,6,3,2,320,5,1]#创建一个列表 print(a)#打印列表,输出为:[4,5,6,3,2,320,5,1] print(a.sort())#输出为:None print(a)#输出为:[1,2,3,4,5,5,6,320] a=a.sort() print(a)#输出为:None
错用a=a.sort(),以为可以把列表a按升序排列,其实只会把a变为None,并不是真正想要的结果;正确做法是只要调用了a.sort(),原列表a就变为一个升序的列表了,就可以直接使用a了;
2.sorted:
sorted()函数是Python中的内置函数
语法:sorted(iterable=None,key=None,reverse=False)
共有三个参数,后两个参数和list.sort()方法中的参数意思没有差别,第一个参数是一个可迭代对象
返回值:返回重新排列的列表
注意:和list.sort()方法不一样的是,该函数不该变原来的可迭代对象,如a为一个列表,sorted(a),并不会改变a,只会返回一个排序后的新列表
代码案例:
"""test""" a=[4,5,6,3,2,320,5,1]#创建一个列表 print(a)#输出:[4,5,6,3,2,320,5,1] sorted(a) print(a)#输出:[4,5,6,3,2,320,5,1],因为sorted()函数不会改变原先的列表 print(sorted(a))#输出:[1,2,3,4,5,5,6,320],因为sorted()函数返回一个排序好的列表 a=sorted(a) print(a)#现在用sorted函数就可以这样使用而不会出现错误了,输出:[1,2,3,4,5,5,6,320]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。