【发布时间】:2013-05-20 16:16:46
【问题描述】:
我正在寻找最有效和 Pythonic(主要是有效)的方式来更新字典,但如果存在现有键,则保留旧值。比如……
myDict1 = {'1': ('3', '2'), '3': ('2', '1'), '2': ('3', '1')}
myDict2 = {'4': ('5', '2'), '5': ('2', '4'), '2': ('5', '4')}
myDict1.update(myDict2) gives me the following....
{'1': ('3', '2'), '3': ('2', '1'), '2': ('5', '4'), '5': ('2', '4'), '4': ('5', '2')}
请注意键“2”如何存在于两个字典中,并且曾经具有值(“3”,“1”),但现在它具有来自 myDict2 中的键的值(“5”,“4”)?
有没有办法以有效的方式更新字典,以便键 '2' 最终具有值('3'、'1'、'5'、'4')? #不分先后
提前致谢
【问题讨论】:
-
不,没有简单的方法可以做到这一点。您必须迭代键并合并值。
-
很遗憾,感谢您的回复。
-
对我来说,您似乎正在代表一个带有邻接列表的图形...那么如果
'2':('3','1')和'2':('5','3')合并呢?结果列表中会出现双倍的'3's 吗? -
@Billiska 然后 {'3': ['1', '5'], '1': ['3'], '5':[3]}
标签: python performance dictionary