比较两个字典键并使用Python中的列表值创建字典

时间:2017-05-17 15:32:28

标签: python

假设您有两个不同的词典。

info_stored = {'a' : 0, 'b' : 2, 'c' : 15}

log_stored = {'dog' : 1, 'a' : 1, 'ted' : 14}

我想比较这两个词典以确定键是否匹配。在这个例子中只有'a'是常见的。

for key in info_stored:
    if key in log_stored:

我想用公共密钥和该公共密钥的值列表创建一个新字典。

common_stored = {'a' : [0, 1]}

3 个答案:

答案 0 :(得分:2)

这个怎么样:

info_stored = {'a' : 0, 'b' : 2, 'c' : 15}

log_stored = {'dog' : 1, 'a' : 1, 'ted' : 14}

common_stored = {k: [] for k in info_stored if k in log_stored}

然后:

for key in common_stored:
    common_stored[k].extend([info_stored[k], log_stored[k]])
print(common_stored)  # common_stored = {'a' : [0, 1]}

第一步是创建一个字典,其中包含公共元素作为键,空列表作为值。

最后,我们根据原始dicts的内容修改这些空列表。

您甚至可以将这两个步骤合并到一个词典理解中,如下所示:

common_stored = {k: [info_stored[k], log_stored[k]] for k in info_stored if k in log_stored}

答案 1 :(得分:1)

info_stored = {'a' : 0, 'b' : 2, 'c' : 15}
log_stored = {'dog' : 1, 'a' : 1, 'ted' : 14}

common_stored = {}

# Traverse through info_stored dictionary
for key, val in info_stored.items():
   # Check for key in log_stored dictionary, if found add it to common_stored
   if key in log_stored:
      common_stored[key] = [val, log_stored[key]]

common_stored
{'a': [0, 1]}

答案 2 :(得分:1)

一个简单的解决方案是:

info_stored = {'a' : 0, 'b' : 2, 'c' : 15}

log_stored = {'dog' : 1, 'a' : 1, 'ted' : 14}

result={}


for key in info_stored :
  if key in log_stored :
    result[key]=[ info_stored[key], log_stored[key]]

print (result)