Python-如何使用同一键合并多个字典?

发布于 2021-02-02 23:13:38

我有多个像这样的字典/键值对:

d1 = {key1: x1, key2: y1}  
d2 = {key1: x2, key2: y2}  

我希望结果成为新的字典(如果可能的话,以最有效的方式):

d = {key1: (x1, x2), key2: (y1, y2)}  

实际上,我希望结果d为:

d = {key1: (x1.x1attrib, x2.x2attrib), key2: (y1.y1attrib, y2.y2attrib)}

如果有人告诉我如何获得第一个结果,那么我可以找出其余的结果。

关注者
0
被浏览
106
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    假设所有键始终存在于所有字典中:

    ds = [d1, d2]
    d = {}
    for k in d1.iterkeys():
        d[k] = tuple(d[k] for d in ds)
    

    注意:在Python 3.x中,使用以下代码:

    ds = [d1, d2]
    d = {}
    for k in d1.keys():
      d[k] = tuple(d[k] for d in ds)
    

    并且如果dic包含numpy数组:

    ds = [d1, d2]
    d = {}
    for k in d1.keys():
      d[k] = np.concatenate(list(d[k] for d in ds))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看