python按照绝对值排序
python按照绝对值排序
sorted用法
sorted是Python提供的功能强大的排序函数。满足字符,数字等排序要求。
对数字进行排序:
list = [-12, -2, -24, 20, 9, 10];
print(sorted(list))
输出结果:
[-24, -12, -2, 10, 20, 9]
sorted 作为一个高阶函数,支持传入key。key作为排序的规则.
sorted(array,key)
将list 中元素取绝对值之后排序
print(sorted(lsit, key=abs))
输出结果:
[-2, 10, -12, 20, -24, 9]
原数组:
数据
排序结果
list
[-24, -12, -2, 10, 20, 9]
key=abs
[24,12,2,10,20,9] -> [2,10,12,20,24,9]
sorted(list,key = abs)
[-2,10,-12,20,-24,9]
高阶函数允许传入key 作为排序规则。
先经过key规则对数组进行处理之后。在使用sorted进行排序。
sorted排序字符:
listStr = [C, s, a, A, z, O];
# 使用所有的字符转为小写,然后根据ascii码相应字符的排序进行比较
print(sorted(listStr, key=str.lower))
输出结果:
[ a , A , C , O , s , z ]
sorted(listStr,key= str.lower, reverse=True)
reverse:允许对已经经过key处理过的数据进行反转.
# 忽略大小写 排序字符
listStr = [C, s, a, A, z, O];
# 使用所有的字符转为小写,然后根据ascii码相应字符的排序进行比较
print(sorted(listStr, key=str.lower, reverse=True))
输出结果:
[ z , s , O , C , a , A ]
使用operator.itemgetter 作为key进行排序
一个例子:
以下students数组,结构为(名字,成绩,年龄)
students = [( john , A , 15), ( jane , B , 12), ( dave , B , 10)]
对students 按照名字、成绩、年龄排序
使用itemgetter获取数组定下标元素作为key
print(sorted(students, key=itemgetter(1)))
输出结果:
[( john , A , 15), ( jane , B , 12), ( dave , B , 10)]
print(sorted(students, key=itemgetter(1,0)))
输出结果:
[( john , A , 15), ( dave , B , 10), ( jane , B , 12)]
由以上结果可以发现,使用itemgetter获取数组元素作为key处理规则。
计算逻辑为,依次使用itemgetter中参数进行处理数组。
使用lamda表达式作为key
print(sorted(students, key=lambda x: students[1]))
输出结果:
[( john , A , 15), ( jane , B , 12), ( dave , B , 10)]
以上都支持在reverse属性对数据进行反转。
如果解决了你的问题,请点个赞。
不点就在看一遍吧。
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 11 条评论) |
本站网友 unite | 18分钟前 发表 |
先经过key规则对数组进行处理之后 | |
本站网友 图层混合模式 | 29分钟前 发表 |
( dave | |
本站网友 博客是什么 | 11分钟前 发表 |
[-2 | |
本站网友 隆胸手术医院 | 22分钟前 发表 |
10)]对students 按照名字 | |
本站网友 中国工业机器人 | 10分钟前 发表 |
s | |
本站网友 堂会官网 | 30分钟前 发表 |
9]sorted 作为一个高阶函数 | |
本站网友 梦见自己生孩子 | 16分钟前 发表 |
a | |
本站网友 女人保养皮肤的方法 | 6分钟前 发表 |
12) | |
本站网友 行为乖张 | 3分钟前 发表 |
9]原数组 | |
本站网友 黄贵生 | 7分钟前 发表 |
key作为排序的规则.sorted(array |