【问题标题】:The list with most elements元素最多的列表
【发布时间】:2011-04-12 11:19:34
【问题描述】:

我有一个以字典为元素的列表。每个字典都有一个称为类型的条目。 type 字段表示一个列表。获取具有最多元素的列表的最简单/pythonic 方法是什么?

programmes_by_type = []
programmes_by_type.append({'type' : [1, 2, 3]})
programmes_by_type.append({'type' : [2, 5]})
programmes_by_type.append({'type' : [3]})
programmes_by_type.append({'type' : [11, 2, 6, 7]})

鉴于前面的示例,它应该返回 [11, 2, 6, 7] 列表。

【问题讨论】:

    标签: list dictionary python


    【解决方案1】:
    max([option['type'] for option in programmes_by_type], key=len)
    

    【讨论】:

    • (+1) max(..., key=...)。值得注意的是,这需要 Python 2.5。
    • 这是正确的答案。我会在短时间内回答。最后一件事,如果类型条目是包含 type_list 条目的字典并且我需要包含大多数元素的 type_list 列表,您将如何修改它?
    • max(programmes_by_type, key=lambda v: len(v['type'])) 将返回字典而不是列表
    【解决方案2】:
    max_length = 0
    type_list = None
    
    for el in programmes_by_type:
        if len(el) > max_length:
            max_length = len(el)
            type_list = el['type']
    

    type_list 现在包含最大的列表。

    【讨论】:

    • Nitpick:Python 中没有 Null,只有 None
    猜你喜欢
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多