005_002 Python 对字符串列表排序,不区分大小写

代码如下:

#encoding=utf-8

print '中国'

#对字符串列表排序,不区分大小写
print '--DSU方法'
def case_insensitive_sort(sort_strlist):
    auxiliary_list = [(x.lower(),x) for x in sort_strlist] #decorate    
    auxiliary_list.sort()                                   #sort
    return [x[1] for x in auxiliary_list]                   #undecorate

sort_strlist=['a1','A1','B2','a3','1a']

print case_insensitive_sort(sort_strlist)


#方法二 使用内置的sorted 其实就是内置的dsu
print '--内置的sorted' 
#iterable:是可迭代类型;
#cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
#key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
#reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
#返回值:是一个经过排序的可迭代类型,与iterable一样。
print sort_strlist
listnew=sorted(sort_strlist,key=str.lower)
print listnew

#支持unicode和普通字符串
import string
sort_strlist=[u'z中国',u'A日1',u'B爱2',u'啊a3','1a']
listnew=sorted(sort_strlist,key=string.lower)
print listnew

打印结果如下:

中国
--DSU方法
['1a', 'A1', 'a1', 'a3', 'B2']
--内置的sorted
['a1', 'A1', 'B2', 'a3', '1a']
['1a', 'a1', 'A1', 'a3', 'B2']
['1a', u'A\u65e51', u'B\u72312', u'z\u4e2d\u56fd', u'\u554aa3']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书山登峰人

精品不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值