python字符串对比 忽略大小写_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', 'Has', 'In', 'jb51', '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

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.

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

jb51 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值