我有这两本字典;
Dict1 = {1: ('John', 37), 2: ('Tom', 23), 3: ('Tom', 19), 4: ('Jane', 58)}
Dict2 = {1: ('2',), 2: ('4',), 3: ('19',)}
处理上述两个字典得到的输出字典是;
OutputDict = {1: ('John', 37), 2: ('Tom', 23)}
得到
OutputDict
的逻辑是这样的;(1)
Dict1
和Dict2
必须有匹配的键。否则,OutputDict
将丢弃Dict1
中的key:value对。(2)如果找到匹配的键,
Dict1
值中的第二个元素必须与Dict2
中的值不同。如果它们相同,OutputDict
将丢弃Dict1
中的key:value对。如何用Python编程?我正在使用Python2.7。
最佳答案
您可以使用dictionary comprehension来遍历Dict1
中的键值对,只保留那些键值对,以便(1)键值在Dict2
中;(2)数值与Dict1
和Dict2
匹配:
演示
>>> OutputDict = { k: v for k, v in Dict1.iteritems()
if k in Dict2 and int(Dict2[k][0]) != v[1] }
>>> OutputDict
{1: ('John', 37), 2: ('Tom', 23)}
关于python - 如何处理这两个字典以在Python中获得新字典?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22102593/