Python3中sort()和sorted()的区别和用法

Ianthe ·
更新时间:2024-11-10
· 652 次阅读

1、sort()函数

    sort是对于列表类型的排序函数,函数原型为:L.sort(key=None, reverse=False),该方法没有返回值,是对列表的就地排序。

key-- 是指用来比较的关键字,可以说是列表元素的一个权值。key一般用来接受一个函数(或者匿名函数),这个函数只接受一个元素,并返回其权值 reverse-- 是否逆序排列(reverse默认为False,sort函数默认从小到大排序。如果令reverse=True,那么就会从大到小排序) phone = ['HuaWei','Vivo','Oppo','Meizu','Iphone','Mi'] phone.sort() # 默认根据第一个字母进行排序 print(phone) phone.sort(key = lambda s:s[-1]) # 根据最后一个字母从小到大排序 print(phone) # 根据最后一个字母排序,并且从大到小排序 phone.sort(key = lambda s:s[-1],reverse = True) print(phone) #定义一个函数 def takeStr(s): return s[1] phone.sort(key = takeStr) #按照第2个字母进行排序 print(phone)

num = [5,4,9,1,0,2,6,3,7,8] print('原序列为:') print(num) num.sort() print('将序列从小到大排序为:') print(num) num.sort(reverse = True) print('将序列从大到小排序为:') print(num)

2、sorted()函数

       python3中sorted函数取消了对cmp的支持,sorted 可以对所有可迭代的对象进行排序操作,尤其是可以对字典进行排序。其形式为:sorted(iterable, key=None, reverse=False)。sorted函数是有返回值的。其中的key以及reverse参数和上面介绍的一样。

cmp:cmp(x,y) 函数用于比较2个对象,如果 x y 返回 1。Python 3.X 的版本中已经没有 cmp 函数,如果你需要实现比较功能,需要引入 operator 模块。 在Python里iterable被认为是一类对象,这类对象能够一次返回它的一个成员(也就是元素)。抽象一点就是适合迭代的对象。 python中可迭代对象有:列表、元组、字典、字符串; #对列表进行排序 num = [5,4,9,1,0,2,6,3,7,8] sortNum = sorted(num) # 默认从小到大排序 print(num) # 并没有进行就地排序,还是打印原列表 print(sortNum) print(sorted(num,reverse=True)) # 从大到小排序 #对元组进行排序 a = (5,4,9,1,0,2,6,3,7,8) print(sorted(a)) #对字典进行排序 people = {'zhang':21,'chen':22,'song':56,'sun':30,'zhou':16} print(sorted(people)) # 对于字典而言,默认对keys进行排序 print(sorted(people.items())) # 根据keys进行排序,以列表形式返回键值对 print(sorted(people.values())) # 对字典中的值进行排序,返回列表形式 #根据年龄从大到小进行排序 print(sorted(people.items(),key = lambda x:x[1],reverse = True))


作者:ACfun:)



sorted sort Python3 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号