【问题标题】:python, how to sort tuple or list with case insensitive? [duplicate]python,如何对不区分大小写的元组或列表进行排序? [复制]
【发布时间】:2013-02-11 11:56:21
【问题描述】:

我有这两个列表,我通过 zip 将它们组合起来,然后我想对它们进行排序,但它给了我这个结果(Ard,Ger,Sla,ard),而我想成为(ard,Ard,Ger,Sla)。任何想法?

N = ["ard","Ard","Ger","Sla"]
L = ["7","4","2","3"]
x=zip(N,L)
x.sort()
for i in x:
    print i[0]

【问题讨论】:

    标签: python list tuples


    【解决方案1】:

    key 参数传递给排序:

    x.sort(key=lambda (a, b): (a.lower(), b))
    

    输出是:

    Ard
    ard
    Ger
    Sla
    

    【讨论】:

    • 谢谢它的工作。但我尝试 a.upper() 给出 ard,Ard .... 但给出了相同的结果。
    • @jesy2013:这个数字比较小,所以总是这样排序的。
    • 可能是骇人听闻的,但 免责声明 - 早上喝咖啡之前x.sort(key=lambda (a, b): (a.lower(), cmp(a.lower(), a), b))
    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 2011-01-21
    相关资源
    最近更新 更多