将字典值添加到列表,这是字典的值

时间:2015-02-03 14:14:01

标签: python dictionary

我有一个python字典,其值字段为列表。 我想基于键值将字典值附加到每个列表。 我该怎么做?我有一个示例字典,我迭代并获取值附加到列表。我在某种程度上编写的代码似乎将示例dict中的所有值添加到dict im追加值中的所有键值。 我做错了什么?

default_value = []
a = dict.fromkeys(li, default_value)
for key, value in data.items():
    if key == "items":
        for val in value:
            a[val['owner']['display_name']].append(val)

1 个答案:

答案 0 :(得分:4)

a = dict.fromkeys([1, 2, 3], [])

创建一个字典:

{1: [],
 2: [],
 3: []}

其中所有值都指向同一个字典。

a[1].append(5)

{1: [5],
 2: [5],
 3: [5]}

你必须在一个真实的循环中创建字典:

a = {k: [] for k in li}

您的代码段可以写成:

a = {k: [] for k in li}
for val in data['items']:
    a[val['owner']['display_name']].append(val)
相关问题