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 相关文章推荐
Python如何为图片添加水印
Nov 25 Python
python用户评论标签匹配的解决方法
May 31 Python
通过python将大量文件按修改时间分类的方法
Oct 17 Python
使用Template格式化Python字符串的方法
Jan 22 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 Python
Python SSL证书验证问题解决方案
Jan 13 Python
Python常用数字处理基本操作汇总
Sep 10 Python
如何利用python检测图片是否包含二维码
Oct 15 Python
python利用文件时间批量重命名照片和视频
Feb 09 Python
Python 如何解决稀疏矩阵运算
May 26 Python
Opencv中cv2.floodFill算法的使用
Jun 18 Python
python 闭包函数详细介绍
Apr 19 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
人族 Terran 基本策略
2020/03/14 星际争霸
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
Javascript 去除数组的重复元素
2010/05/04 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
nodejs基础知识
2017/02/03 NodeJs
Vue官方文档梳理之全局配置
2017/11/22 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python3基础之基本数据类型概述
2014/08/13 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
python实现实时监控文件的方法
2016/08/26 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
基于python3生成标签云代码解析
2020/02/18 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
Python实现画图软件功能方法详解
2020/07/28 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
学校食堂采购员岗位职责
2013/12/05 职场文书
教师实习自我鉴定
2013/12/14 职场文书
人事行政主管岗位职责
2013/12/22 职场文书
社区义诊活动总结
2014/04/30 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
合同审查法律意见书
2015/06/04 职场文书