我有一个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)
答案 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)