Python sort()和sorted()函数知识点
发布日期:2021-11-15 14:58:08
浏览次数:29
分类:技术文章
本文共 2124 字,大约阅读时间需要 7 分钟。
前沿
最近刷题发现用到排序函数的频率太高了,每次遇到一些不懂得知识点就各种查,所以现在索性做一个总结,以防将来忘记。
一、两个函数的区别
1.sort()
是列表的内置函数,他会直接对列表进行排序,不返回任何值。 list.sort(key=None,reverse=True/False)2.sorted()
并不修改列表内部值,而是直接返回已经排序好的对象。sorted(iterable,key=None,reverse=True/False) iterable:可迭代类型数据。如列表,元组,字典,字符串等 返回的对象都是列表类型的二、参数key,reverse
因为sort()与sorted()函数中key和reverse的功能一样,所以在一起讲述,并且在下面的例子中用sort()来表示
1.reverse 默认我们使用sort()即不加任何参数时,表示递增。reverse默认为False,当将reverse=True时,则列表按照递减排序,如>>>a=[1,4,5,2,6,3]>>>a.sort(reverse=True)>>>a[6,5,4,3,2,1]
2.key
此处接受函数的返回值,并且函数只能有一个形参,如>>> a=[[3,9],[1,8],[2,3]]>>> def cmp(x): #这里的x是随意命名的... #return x[1] 表示对元素的第二个字段排序,x[0]表示第一个字段... return (x[0],-x[1]) #表示先按照第一个字段排序,若相等,则按照第二个字段逆序排>>> a.sort(key=cmp)>>> a[[2, 3], [1, 8], [3, 9]]
这里也可以使用landa函数简写,如
>>> a=[[3,9],[1,8],[2,3]]>>> a.sort(key=lambda x:x[1])>>> a[[2, 3], [1, 8], [3, 9]]
三、Sorted()对字符串、元组即字典排序
1.字符串排序
>>> str="akvbavkda">>> sorted(str) #按照ASCII排序,默认是升序['a', 'a', 'a', 'b', 'd', 'k', 'k', 'v', 'v']
2.元组排序
>>> t=(4,2,1)>>> sorted(t)[1, 2, 4]#注意 元组内部的元素必须是相同类型的,非则会报错>>> t=(4,2,1,"abd")>>> sorted(t)Traceback (most recent call last): File "", line 1, in TypeError: '<' not supported between instances of 'str' and 'int'
3.字典排序
构建一个字典 math 其中key存姓名,value存分数
>>> math={ "abc":85,"acb":82,"apple":90,"banana":20}
根据字典Key值排序 (姓名)
#只输出key值的排序>>> sorted(math) #字典默认按照key值排序['abc', 'acb', 'apple', 'banana']>>> sorted(math.keys()) ['abc', 'acb', 'apple', 'banana']#输出整个字典(包括value>>> sorted(math.items())[('abc', 85), ('acb', 82), ('apple', 90), ('banana', 20)]>>> sorted(math.items(),key=lambda x:x[0])[('abc', 85), ('acb', 82), ('apple', 90), ('banana', 20)]
根据字典Value值排序 (分数)
#只输出value值的排序>>> sorted(math.values()) [20, 82, 85, 90]#*********注意***********#不能使用如下语句,可以发现他仍然是对key排序,此处传入#的x仍然是key值,x[i]表示传入这个字符串的第二个元素#"banana"的第二个元素就是'a'>>> sorted(math,key=lambda x:x[1])['banana', 'abc', 'acb', 'apple']#输出整个字典(包括value>>> sorted(math.items(),key=lambda x:x[1])[('banana', 20), ('acb', 82), ('abc', 85), ('apple', 90)]
参考文献
[1].https://blog.csdn.net/gymaisyl/article/details/83039279
[2].https://blog.csdn.net/robinson_/article/details/51484147转载地址:https://blog.csdn.net/qq_39751320/article/details/104313489 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月05日 12时42分43秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
np.all的实例应用
2019-04-26
custom_transforms
2019-04-26
scipy.misc.imread函数,读取图片
2019-04-26
pytorch 训练数据以及测试 全部代码(1)
2019-04-26
pytorch 训练数据以及测试 全部代码(2)
2019-04-26
pytorch 训练数据以及测试 全部代码(3)
2019-04-26
Linux中ping命令
2019-04-26
numpy与Image互转以及它们的size不同,还有关于plt
2019-04-26
pycharm的安装卸载,激活与远程调试
2019-04-26
CGAN,条件GAN
2019-04-26
改进算法1
2019-04-26
用tensorflow,pytorch框架使用GPU,指定GPU问题
2019-04-26
数据处理中ToTensor紧接着Normalize
2019-04-26