Python学习记录之sorted()以及sort()

一、sort()是对原始的L进行操作,调用后会改变原始的L,返回None;仅适用于list
sort()可以添加key,reverse来实现自定义的排序
在这里插入图片描述
例如:
L1 = [12, 213, 423, 121, 4, 2, 564, 56, 7, 8]
print(L1.sort()) #返回为 None
print(L1) #返回为[-423, 2, 4, 7, 8, 12, 56, 121, 213, 564],可以看到列表由小到大排列

L2 = [12, 213, 423, 121, 4, 2, 564, 56, 7, 8]
print(L2.sort(key=abs)) #返回为 None
print(L2) #返回为[2, 4, 7, 8, 12, 56, -121, 213, -423, 564]

L3 = [12, 213, 423, 121, 4, 2, 564, 56, 7, 8]
print(L3.sort(reverse=True)) #返回为 None
print(L3) #返回为[564, 213, 56, 12, 8, 7, 4, 2, -121, -423] ,可以看到列表由大到小排列进行了反向排序

对列表字符串排序:
默认情况下,对字符串排序,是按照ASCII的大小比较的,由于’Z’ < ‘a’,结果,大写字母Z会排在小写字母a的前面。
strn = [‘bob’, ‘about’, ‘Zoo’, ‘Credit’]
strn.sort(key=len,reverse=True)
print(strn) #返回结果[‘Credit’, ‘about’, ‘bob’, ‘Zoo’]
strn.sort(key=len)
print(strn) #返回结果[‘bob’, ‘Zoo’, ‘about’, ‘Credit’]

二、sorted(L)返回一个排序后的L,不改变原始的L;sorted()适用于任何可迭代容器
sorted()同样可以添加key,reverse来实现自定义的排序;
在这里插入图片描述
L1 = [12, 213, -423, -121, 4, 2, 564, 56, 7, 8]
print(sorted(L1,reverse=True)) #运行结果[564, 213, 56, 12, 8, 7, 4, 2, -121, -423]
print(sorted(L1)) #运行结果[-423, -121, 2, 4, 7, 8, 12, 56, 213, 564]
print(L1) #运行结果[12, 213, -423, -121, 4, 2, 564, 56, 7, 8]

sorted()还可以对字符串或者dict进行排序

对字符串排序:
默认情况下,对字符串排序,是按照ASCII的大小比较的,由于’Z’ < ‘a’,结果,大写字母Z会排在小写字母a的前面。
strn = [‘bob’, ‘about’, ‘Zoo’, ‘Credit’]
print(sorted(strn)) #运行结果[‘Credit’, ‘Zoo’, ‘about’, ‘bob’]
print(sorted(strn,key=str.lower,reverse=True)) #运行结果[‘Zoo’, ‘Credit’, ‘bob’, ‘about’]
print(sorted(strn,key=str.upper,reverse=True))#运行结果[‘Zoo’, ‘Credit’, ‘bob’, ‘about’]
print(sorted(strn,key=len,reverse=True))#运行结果[‘Credit’, ‘about’, ‘bob’, ‘Zoo’]

对dict进行排序
a = {‘Bob’:75, ‘Adam’: 92, ‘Bart’:66, ‘Lisa’:88}
#对key排序
print(sorted(a.keys())) #运行结果[‘Adam’, ‘Bob’, ‘Lisa’, ‘bart’]
#对value排序
print(sorted(a.values())) #运行结果[66, 75, 88, 92]

print(sorted(a.items()))#运行结果 [(‘Adam’, 92), (‘Bob’, 75), (‘Lisa’, 88), (‘bart’, 66)]
print(sorted(a.items(), reverse=True))#运行结果[(‘bart’, 66), (‘Lisa’, 88), (‘Bob’, 75), (‘Adam’, 92)]
可以发现items()方法将字典的元素转化为了元组
dict中key值有大写有小写,如何像字符串一样使用lower/upper?
排序后发现返回值是一个元组元素组成的list,可以使用dict()处理为字典
r = sorted(a.items(), reverse=True)
print(dict®) #运行结果{‘bart’: 66, ‘Lisa’: 88, ‘Bob’: 75, ‘Adam’: 92}

对一组tuple组成的列表进行排序,可以先转换成字典
b = [(‘Bob’, 75), (‘Adam’, 92), (‘Bart’, 66), (‘Lisa’, 88)]
a = dict(b)
print(sorted(a.keys()))
print(sorted(a.values()))
print(sorted(a.items()))
d = sorted(a.items(), reverse=True)
print(dict(d))
运行结果:
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值