def cmp_ignore_case(s1, s2):
if s1[0].lower() < s2[0].lower():
return -1
if s1[0].lower() > s2[0].lower():
return 1
else:
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
对于比较函数cmp_ignore_case(s1, s2),要忽略大小写比较,就是先把两个字符串都变成大写(或者都变成小写),再比较。
至于由大到小进行排序,可以采用下面的代码,只需对于返回的参数加以修改:def cmp_ignore_case(s1, s2):
u1 = s1.upper()
u2 = s2.upper()
if u1 < u2:
return 1
if u1 > u2:
return -1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)