代码如下:
#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']