当前位置:  开发笔记 > 编程语言 > 正文

不区分大小写的嵌套列表的字母排序

如何解决《不区分大小写的嵌套列表的字母排序》经验,为你挑选了1个好方法。

我正试图通过内部列表第一个元素对这个嵌套列表进行排序:

ak = [ ['a',1],['E',2],['C',13],['A',11],['b',9] ]
ak.sort(cmp=lambda x, y: cmp(x[0], y[0]))
for i in ak: {
    print i
}

默认情况下,python认为A> a,因此我得到的输出是:

['A', 11] ['C', 13] ['E', 2] ['a', 1] ['b', 9]

我已经尝试通过添加x [0] .lower等将所有列表值转换为偶数情况,但没有用.我如何强制python(我正在使用2.4版本)进行不区分大小写的字母排序?

编辑:

Jarret和Brian,你对括号的假设是正确的!我忘了把它们放进去!而Jarret,你对不使用"cmp"的建议就像一个魅力!非常感谢!

Jarret Hardi.. 9

尝试:

ak.sort(key=lambda x:x[0].lower())

我建议您避免使用,cmp因为这已在Python 2.6中弃用,并在3.0中删除.我知道你正在使用2.4,但其原因cmp已经变得不受欢迎,因为它是一种非常缓慢的排序方式.

我不确定为什么你的努力lower失败了,但是......也许你忘了使用函数调用而不仅仅是函数名?(即:cmp(x[0].lower(), y[0].lower())对比cmp(x[0].lower, y[0].lower))



1> Jarret Hardi..:

尝试:

ak.sort(key=lambda x:x[0].lower())

我建议您避免使用,cmp因为这已在Python 2.6中弃用,并在3.0中删除.我知道你正在使用2.4,但其原因cmp已经变得不受欢迎,因为它是一种非常缓慢的排序方式.

我不确定为什么你的努力lower失败了,但是......也许你忘了使用函数调用而不仅仅是函数名?(即:cmp(x[0].lower(), y[0].lower())对比cmp(x[0].lower, y[0].lower))

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有