Python在列表

时间:2017-09-08 18:59:56

标签: python list dictionary

[{'Size': 0.0}, {'Size': 19.391637}]
[{'ContainerID': '9bcb46615a',
  'MemUsage': 2.85546875,
  'MaxMem': 1.9522056579589844},
 {'ContainerID': '9aadddf8e0',
  'MemUsage': 17.203125,
  'MaxMem': 1.9522056579589844}]

我有两个上面带有dicts的列表,如何将第一个附加到第二个以下:

[{'ContainerID': '9bcb46615a',
  'MemUsage': 2.85546875,
  'MaxMem': 1.9522056579589844,
  'Size': 0.0},
 {'ContainerID': '9aadddf8e0',
  'MemUsage': 17.203125,
  'MaxMem': 1.9522056579589844,
  'Size': 19.391637}]

2 个答案:

答案 0 :(得分:3)

如果您使用的是Python3:

s1 = [{'Size': 0.0}, {'Size': 19.391637}]
s2 = [{'ContainerID': '9bcb46615a', 'MemUsage': 2.85546875, 'MaxMem': 1.9522056579589844}, {'ContainerID': '9aadddf8e0', 'MemUsage': 17.203125, 'MaxMem': 1.9522056579589844}]

final_dict = [{**a, **b} for a, b in zip(s2, s1)]

输出:

[{'MemUsage': 2.85546875, 'ContainerID': '9bcb46615a', 'MaxMem': 1.9522056579589844, 'Size': 0.0}, {'MemUsage': 17.203125, 'ContainerID': '9aadddf8e0', 'MaxMem': 1.9522056579589844, 'Size': 19.391637}]

说明:**称为字典解包。它将字典的内容分成各自的键值对,并允许您将它们合并到一个字典中。

如果您使用的是Python2:

final_data = [dict(a.items()+b.items()) for a, b in zip(s2, s1)]

输出:

[{'Size': 0.0, 'MemUsage': 2.85546875, 'ContainerID': '9bcb46615a', 'MaxMem': 1.9522056579589844}, {'Size': 19.391637, 'MemUsage': 17.203125, 'ContainerID': '9aadddf8e0', 'MaxMem': 1.9522056579589844}]

答案 1 :(得分:0)

就地执行(l1l2是您的列表):

for d1, d2 in zip(l1, l2):
    d2.update(d1)