码迷,mamicode.com
首页 > 编程语言 > 详细

python sort、sorted、reverse、reverd的区别

时间:2018-08-22 17:12:19      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:obj   方法   字符串   ascii   没有   pytho   asc   lam   edr   

sort、sorted、reverse、reversed的区别

!!! error 首先应该区分的是,sort和reverse是列表的一个方法。字符串、元组、字典、集合是没有这两个方法的。而sorted和reversed是python的两个内置函数,并且只有字符串、列表、元组,可以当做参数传入,字典和集合不支持,得到的是一个生成器对象
!!!

sort与sorted()

sort
只有列表有该方法,直接对原来的列表进行排序,不会产生新列表

l1 = [12,2,34,54,5,17]
l1.sort()  #[2, 5, 12, 17, 34, 54]
l1.sort(reverse=True) #[54, 34, 17, 12, 5, 2]
print(l1)

sorted()
不会改变原序列的位置顺序,会得到一个从小到大排序的新列表,想要的到从大到小的直接在序列后面加,reverse=True

s = "summer"
res1 = sorted(s)
print(s)  #summer
print(res1,type(res1)) #[‘e‘, ‘m‘, ‘m‘, ‘r‘, ‘s‘, ‘u‘] <class ‘list‘>

l = [1,34,65,78,23]
res2 = sorted(l)
print(l) #[1, 34, 65, 78, 23]
print(res2,type(res2)) #[1, 23, 34, 65, 78] <class ‘list‘>


t = (12,34,32,12,4,23)
res3 = sorted(t)
print(t) #(12, 34, 32, 12, 4, 23)
print(res3,type(res3)) #[4, 12, 12, 23, 32, 34] <class ‘list‘>

d = {"name":"summer","age":"24","sex":"male"}
res4 = sorted(d)
print(d) #{‘name‘: ‘summer‘, ‘age‘: ‘24‘, ‘sex‘: ‘male‘}
print(res4,type(res4))  #[‘age‘, ‘name‘, ‘sex‘] <class ‘list‘>
#得到的是按照ASCII的顺序得到的key

st = {12,3,4,5}
res5 = sorted(st)
print(st) #{5, 3, 12, 4}
print(res5,typ



sorted()与匿名函数配合使用
l2 = [(1,1000),(2,18),(4,250),(3,500)]
print(sorted(l2,key=lambda k:k[1]))
print(sorted(l2,key=lambda k:k[1],reverse=True))

[(2, 18), (4, 250), (3, 500), (1, 1000)]
[(1, 1000), (3, 500), (4, 250), (2, 18)]

reverse与reveresd()

reverse
只有列表有该方法,直接对原来的列表进行反转

l1 = [1,2,10,7,5]
res = l1.reverse()
print(res)  #None
print(l1) #[5, 7, 10, 2, 1]

reversed()
只有字符串、列表、元组,可以当做参数传入,字典和集合不支持,得到的是一个生成器对象,不会对原来的序列有影响

s = "summer"
res1 = reversed(s)
print(res1) #<reversed object at 0x101b60668>
print(list(res1)) #[‘r‘, ‘e‘, ‘m‘, ‘m‘, ‘u‘, ‘s‘]
print(s) #summer

l = [1,34,65,78,23]
res2 = reversed(l)
print(res2) #<list_reverseiterator object at 0x101a60710>
print(list(res2)) #[1, 34, 65, 78, 23]
print(l) #[1, 34, 65, 78, 23]

t = (12,34,32,12,4,23)
res3 = reversed(t)
print(res3) #<reversed object at 0x101a9a908>
print(list(res3)) #[23, 4, 12, 32, 34, 12]
print(t) #(12, 34, 32, 12, 4, 23)

python sort、sorted、reverse、reverd的区别

标签:obj   方法   字符串   ascii   没有   pytho   asc   lam   edr   

原文地址:https://www.cnblogs.com/xiayuhao/p/9517516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!