python实现忽略大小写对字符串列表排序的方法


Posted in Python onSeptember 25, 2014

本文实例讲述了python实现忽略大小写对字符串列表排序的方法,是非常实用的技巧。分享给大家供大家参考。具体分析如下:

先来看看如下代码:

string = '''
the stirng
Has many
line In
THE fIle
3water net
'''
list_of_string = string.split()
print list_of_string   #将字符串分离开,放入列表中
print '*'*50

def case_insensitive_sort(liststring):
  listtemp = [(x.lower(),x) for x in liststring]#将字符串列表,生成元组,(忽略大小写的字符串,字符串)
  listtemp.sort()#对元组排序,因为元组为:(忽略大小写的字符串,字符串),就是按忽略大小写的字符串排序

  return [x[1] for x in listtemp]#排序完成后,返回原字符串的列表

print case_insensitive_sort(list_of_string)#调用起来,测试一下

结果:

['the', 'stirng', 'Has', 'many', 'line', 'In', 'THE', 'fIle', '3water', 'net']
**************************************************
['fIle', 'Has', 'In', '3water', 'line', 'many', 'net', 'stirng', 'THE', 'the']

另一种方法:

使用内建函数
sorted(iterable[,cmp[, key[,reverse]]])

该函数的官方描述文档如下:

Return a new sorted list from the items in iterable.
key specifies a function of one argument that is used to extract a comparison key from each list element:key=str.lower. The default value isNone.

使用参数key=str.lower

完整代码如下:

string = '''
the stirng
Has many
line In
THE fIle
3water net
'''
list_of_string = string.split()
print list_of_string   #将字符串分离开,放入列表中
print '*'*50

def case_insensitive_sort2(liststring):
  return sorted(liststring,key = str.lower)

print case_insensitive_sort2(list_of_string)#调用起来,测试一下

效果一样~

方法三:

使用list的sort方法:

该方法的官方描述文档如下:

The sort() method takes optional arguments for controlling the comparisons.
cmp specifies a custom comparison function of two arguments (list items) which should return a negative, zero or positive number depending on whether the first argument is considered smaller than, equal to, or larger than the second argument: cmp=lambda x,y: cmp(x.lower(), y.lower()). The default value is None.
key specifies a function of one argument that is used to extract a comparison key from each list element: key=str.lower. The default value is None.
reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.

具体代码如下:

string = '''
the stirng
Has many
line In
THE fIle
3water net
'''
list_of_string = string.split()
print list_of_string   #将字符串分离开,放入列表中
print '*'*50

def case_insensitive_sort3(liststring):
  liststring.sort(cmp=lambda x,y: cmp(x.lower(), y.lower()))

case_insensitive_sort3(list_of_string)
print list_of_string

但这次调用的时候就有区别了。

感兴趣的朋友可以调试运行一下本文实例以加深印象,相信会有新的收获!

Python 相关文章推荐
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
MySQL适配器PyMySQL详解
Sep 20 Python
Android分包MultiDex策略详解
Oct 30 Python
python实现一个简单的ping工具方法
Jan 31 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 Python
python Gabor滤波器讲解
Oct 26 Python
python 装饰器的基本使用
Jan 13 Python
python实现学生信息管理系统源码
Feb 22 Python
Python selenium的这三种等待方式一定要会!
Jun 10 Python
python对字典进行排序实例
Sep 25 #Python
python实现在无须过多援引的情况下创建字典的方法
Sep 25 #Python
python迭代器实例简析
Sep 25 #Python
Python中itertools模块用法详解
Sep 25 #Python
Python中unittest用法实例
Sep 25 #Python
跟老齐学Python之赋值,简单也不简单
Sep 24 #Python
跟老齐学Python之深入变量和引用对象
Sep 24 #Python
You might like
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
使用jQuery同时控制四张图片的伸缩实现代码
2013/04/19 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
python查看FTP是否能连接成功的方法
2015/07/30 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
python多线程抽象编程模型详解
2019/03/20 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
一些Unix笔试题和面试题
2013/01/22 面试题
临床医学系毕业生推荐信
2013/11/09 职场文书
房地产销售员的自我评价分享
2013/12/04 职场文书
学历公证书范本
2014/04/09 职场文书
高中教师评语大全
2014/04/25 职场文书
快餐公司创业计划书
2014/04/29 职场文书
学校督导评估方案
2014/06/10 职场文书
常务副总经理岗位职责
2015/02/02 职场文书
读书笔记格式
2015/07/02 职场文书
旅游投诉信范文
2015/07/02 职场文书
2015年校本培训工作总结
2015/07/24 职场文书