【问题标题】:How do I create a dictionary with keys from a list and values separate empty lists?如何使用列表中的键和值分隔空列表创建字典?
【发布时间】:2015-01-28 14:03:13
【问题描述】:

How do I create a dictionary with keys from a list and values defaulting to (say) zero? 构建 尤其是this answer:

如何使用列表中的键和值分隔空列表来创建字典?
(稍后,我将能够附加元素)

【问题讨论】:

    标签: python list dictionary


    【解决方案1】:

    使用字典理解,

    {item: [] for item in my_list}
    

    您只是在迭代列表并为每个键创建一个新列表。

    或者,你可以考虑使用collections.defaultdict,像这样

    from collections import defaultdict
    d = defaultdict(list)
    for item in my_list:
        d[item].append(whatever_value)
    

    在这里,我们传递给defaultdict 的函数对象是主要的。如果字典中不存在键,它将被调用以获取值。

    【讨论】:

    • 非常感谢,您的回答超出了我的狭隘问题,解决了完整的问题!
    【解决方案2】:

    这是简单易行的实现,它是自我解释的,我们遍历列表中的所有元素并在字典中为每个值创建一个唯一的条目,并用一个空列表对其进行初始化

    sample_list = [2,5,4,6,7]
    sample_dict = {}
    for i in sample_list:
        sample_dict[i] = []
    

    【讨论】:

      【解决方案3】:

      按常规方法:

      >>> l = ["a", "b", "c"]
      >>> d = {}
      >>> for i in l:
      ...   d[i] = []
      ... 
      >>> d
      {'a': [], 'c': [], 'b': []}
      >>> 
      

      通过使用collections 模块

      >>> l = ["a", "b", "c"]
      >>> import collections
      >>> d = collections.defaultdict(list)
      >>> for i in l:
      ...   d[i]
      ... 
      []
      []
      []
      >>> d
      defaultdict(<type 'list'>, {'a': [], 'c': [], 'b': []})
      

      【讨论】:

        猜你喜欢
        • 2018-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-27
        • 2014-08-12
        • 2015-01-17
        • 1970-01-01
        • 2023-02-24
        相关资源
        最近更新 更多