我有两个字典包含相同的键,但值对是不同的。让我们让dictA和dictB代表所涉及的两个字典。用Python字典理解重构
dictA = {'key1':'Joe', 'key2':'Bob'}
dictB = {'key1':'Smith', 'key2':'Johnson'}
目前,我正在通过嵌套if语句创建基于常见发生键的新字典。这样做时,共享密钥的值将包含在新字典中的列表中。请参阅以下内容:
dictAB = {} # Create a new dictionary
# Create a list container for dictionary values
for key in dictA.keys():
dictAB[key] = []
# Iterate through keys in both dictionaries
# Find matching keys and append the respective values to the list container
for key, value in dictA.iteritems():
for key2, value2 in dictB.iteritems():
if key == key2:
dictAB[key].append(value)
dictAB[key].append(value2)
else:
pass
如何使用python字典理解功能将其变成更干净的结构?
由于'dictA'和'dictB'按键相同,无论如何,这是没有必要构建交集。一个简单的'for dictA'就可以做到这一点。 –
@SvenMarnach:真够了;我倾向于防守编码。 –
为了防守,我添加了一个调试断言:'assert dictA.viewkeys()== dictB.viewkeys()'。这样,生产代码的速度不受影响。 –