【发布时间】:2021-09-05 07:14:34
【问题描述】:
我需要合并两个字典 d1 和 d2,其中:
d1 = {0: [array([ 42.9017, -78.6631]), array([ 41.5372, -74.0526]), array([ 39.8017, -89.6437])],
1: [array([ 34.7269, -86.5673]), array([ 29.7229, -98.0742])],
2: [array([ 35.9878, -115.1167]), array([ 34.0316, -117.6187])],array([ 61.6303, -148.9872])]}
d2 = {0: [array([5, 5], dtype=int64), array([44, 44], dtype=int64),array([1, 1], dtype=int64)],
1: [array([1, 1], dtype=int64), array([12, 12], dtype=int64), array([1, 1], dtype=int64)],
2: [array([1, 1], dtype=int64), array([12, 12], dtype=int64), array([1, 1], dtype=int64)]}
在合并 d1 和 d2 后我需要字典 d3,这样,d1 的 key:0 的第一个值与 d2 的 key:0 的第一个值合并。
期望 d3 为:
d3 = {0: [array([ 42.9017, -78.6631]), array([5, 5], dtype=int64), array([ 41.5372, -74.0526]), array([44, 44], dtype=int64) , array([ 39.8017, -89.6437]), array([1, 1], dtype=int64)],
1: [array([ 34.7269, -86.5673]), array([1, 1], dtype=int64), array([ 29.7229, -98.0742]), array([12, 12], dtype=int64)],
2: [array([ 35.9878, -115.1167]),array([1, 1], dtype=int64),array([1, 1], dtype=int64), array([12, 12], dtype=int64), array([ 34.0316, -117.6187])],array([1, 1], dtype=int64), array([ 61.6303, -148.9872])]}
我尝试了多种方法,但似乎没有一种方法能正常工作。 任何帮助深表感谢!谢谢!
【问题讨论】:
-
请发布您尝试过的内容;有人可能会帮助您解决问题。
-
您能说明一下您对 d3 的期望吗?你的例子足够短,应该相对容易。
-
@ScottHunter 我试过这个代码: from copy import deepcopy Dict1 = d1 Dict2 = d2 dic = deepcopy(dict1) print(dict1) for key in dict2.keys(): if key in dic: dic [key].update(dict2[key]) else: dic[key] = dict2[key] 输出:这段代码没有在索引级别合并值,这是理想的预期
-
@AnneAunyme 我希望 d3 也是一本字典……是的,这只是 d1 和 d2 的子集……我在每个字典中总共有 765 个值
-
@Sparsh_ag 你能写出来吗?像你期望的那样写 d3?
标签: python arrays dictionary nested