python实现忽略大小写对字符串列表排序的方法
本篇章节讲解python实现忽略大小写对字符串列表排序的方法,是非常实用的技巧。分享给大家供大家参考。具体分析如下: 先来看看如下代码: string = ''' the stirng Has many line In THE fIle jb51 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','jb51','net'] ************************************************** ['fIle','net','the'] 另一种方法: 使用内建函数 该函数的官方描述文档如下: Return a new sorted list from the items in iterable. 使用参数key=str.lower 完整代码如下: string = ''' the stirng Has many line In THE fIle jb51 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. 具体代码如下: string = ''' the stirng Has many line In THE fIle jb51 net ''' list_of_string = string.split() print list_of_string #将字符串分离开,放入列表中 print '*'*50 def case_insensitive_sort3(liststring): liststring.sort(cmp=lambda x,y.lower())) case_insensitive_sort3(list_of_string) print list_of_string 但这次调用的时候就有区别了。 感兴趣的朋友可以调试运行一下本文实例以加深印象,相信会有新的收获! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |