【发布时间】:2013-03-03 21:18:28
【问题描述】:
我有两个字典(Python),我根据值(不是键)合并它们。但是,我的方法效率很低,基本上是 O(n^2)。有没有更好的办法?
本例中的字典本质上是一个整数键,值是一个元组(5 个元素长),都是整数。
谢谢!
例子:
字典A:{25: (1, 5, 1, 5), 34: (5, 24, 5, 24)}
字典 B:{46: (1, 5, 1, 5), 29: (5, 23, 1, 5)}。
合并后的字典是:{25: (1, 5, 1, 5), 34: (5, 24, 5, 24), 29: (5, 23, 1, 5)}。请注意,字典 A 的第一个元素与字典 B 的第一个元素具有相同的值元组,因此,我们只选择一个
【问题讨论】:
-
您能否详细介绍一下这种“价值合并”?例如,您可以发布两个示例词典和合并词典的所需结果。键和值之间是否存在双射?
-
当然,字典 A: {25: 1, 5, 1, 5}, {34: 5, 24, 5, 24} 字典 B: {46: 1, 5, 1, 5} , {29: 5, 23, 1, 5}。合并后的字典将是:{25: 1, 5, 1, 5}, {34: 5, 24, 5, 24}, {29: 5, 23, 1, 5}。请注意,字典 A 的第一个元素与字典 B 的第一个元素具有相同的值元组,因此,我们只选择一个。
-
@OP,最好编辑你的问题,不要添加 cmets。
-
@OP
A: {25: 1, 5, 1, 5}不是字典。你的意思是A = {25: (1, 5, 1, 5) }吗? -
@OP:你根据什么决定是保留密钥
25还是密钥46?
标签: python dictionary merge