python学习笔记之自定义排序函数
2020-04-09 12:47
218 查看
自定义排序函数
sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
(摘自慕课网廖雪峰python进阶)
任务
对字符串排序时,有时候忽略大小写排序更符合习惯。请利用sorted()高阶函数,实现忽略大小写排序的算法。
输入:[‘bob’, ‘about’, ‘Zoo’, ‘Credit’]
输出:[‘about’, ‘bob’, ‘Credit’, ‘Zoo’]
(慕课网廖雪峰老师课程里的题,我希望可以更准确的做出,‘bob’应该放在‘bo’的后面这样的操作,如果有更简洁高效的代码,希望大家可以给我留言。)
我的代码:
def cmp_ignore_case(s1, s2): i = -1 while True : i = i + 1 # 检索位置的索引 if i < len(s1) and i < len(s2) : # i 不超过s1和s2的长度 if s1[i].lower() < s2[i].lower() : ## s1排前面 return -1 elif s1[i].lower() > s2[i].lower() : ## s1 排后面 return 1 else: continue ## 暂时比较不出,比较下一位置的元素 elif i < len(s1) and i >= len(s2): # i超过了s2,s1排后面 return 1 elif i >= len(s1) and i < len(s2) : # i超过了s1,s1排前面 return -1 else : # 都超过了,s1和s2一样 return 0 break print sorted(['bob', 'about', 'Zoo', 'Credit',], cmp_ignore_case)
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 学习笔记(01):python数据分析与机器学习实战【2019新版】-apply自定义函数
- Python学习笔记之变量、自定义函数用法示例
- Python中的自定义函数学习笔记
- python自定义输入名字并打印-学习笔记10-输入函数
- 学习笔记(01):零基础搞定Python数据分析与挖掘-自定义函数的介绍与使用(一)...
- Python学习笔记之自定义函数用法详解
- Python中的自定义函数学习笔记
- Python学习笔记总结(二):函数和模块
- [C++学习笔记]自定义函数的传值方法
- python学习笔记(03):函数
- Python学习笔记整理(十二)Python的函数
- Python学习笔记 — 函数
- python学习3:自定义函数使用
- python学习笔记11(函数二): 参数的传递、变量的作用域
- Python学习笔记(三)函数初识和内置函数
- python函数缺省值与引用学习笔记分享
- Python学习笔记之一: 函数参数
- python学习笔记(二)流程控制 函数
- python学习笔记——函数可变参数处理
- Python学习笔记8―Python函数