【问题标题】:How to sort list of lists according to length of sublists [duplicate]如何根据子列表的长度对列表列表进行排序[重复]
【发布时间】:2015-08-01 12:07:03
【问题描述】:

我有以下列表

a = [['a', 'b', 'c'], ['d', 'e'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l'], ['m', 'n'], ['o']]

我想根据子列表的长度对列表进行排序。 结果应该是这样的:

a = [['o'],['d','e'],['m', 'n'],['a', 'b', 'c'],['f', 'g', 'h'], ['i','j','k','l']]

【问题讨论】:

    标签: python list python-2.7


    【解决方案1】:

    使用sortsorted 中的key 参数。它指定一个参数的函数,用于从每个列表元素中提取比较键

    In [6]: a = [['a', 'b', 'c'], ['d', 'e'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l'], ['m', 'n'], ['o']]
    
    In [7]: a.sort(key=len)
    
    In [8]: print a
    [['o'], ['d', 'e'], ['m', 'n'], ['a', 'b', 'c'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l']]
    

    【讨论】:

    • 这不是关键,但无论如何都很棒:)
    • 简单的事情,但不明白 Tnq Alik :)
    • @rajeshv90 sort 现在比较的不是子列表,而是它们的长度(len(sublist) 的值)
    • 按子数组长度降序对数组进行排序的小调整:a.sort(key=len, reverse=True)
    【解决方案2】:

    可以通过

    sorted(a, key=len)
    

    【讨论】:

    • 你必须解释,如果你这样做,那将是 OP
    猜你喜欢
    • 2019-12-19
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 2022-01-02
    • 2023-03-05
    • 2018-02-23
    • 2020-07-21
    • 2020-06-02
    相关资源
    最近更新 更多