我有多个dict/键值对,如下所示:

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

我希望结果是一个新的dict(以最有效的方式,如果可能的话):

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

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

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

如果有人告诉我如何得到第一个结果,我就能找出剩下的.

推荐答案

假设所有的按键都存在于所有的DICT中:

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))

Python-3.x相关问答推荐

一种基于绝对排序值的极框索引和列定位的Python方法

被多个\n拆分并保留

向前/向后移动导致移动行的数据不可见

汉明距离:涉及按位运算的逻辑步骤不清楚

如何将 OLS 趋势线添加到使用 updatemenus 显示数据子集的 plotly 散点图图形对象?

在 python pandas 中设置条件和分配新值

找到操作系统的图片文件夹的 CLI

`pyspark mllib` 与 `pyspark ml` 包

解包时是否可以指定默认值?

日志(log)模块不适用于 Python3

判断对 python 3 支持的要求

如何在 Python 3 中通过 IP 获取 WhoIs 信息?

如何从同一文件夹中的模块导入功能?

带百分号的 Python 字符串格式

在python中,如果一个函数没有return语句,它会返回什么?

如何模拟 open(...).write() 而不会出现没有这样的文件或目录错误?

变量类型注解NameError不一致

将 numpy.float64 列表快速转换为 Python 中的浮点数

python判断一个方法是否被调用而不模拟它

在 PostgreSQL 上使用 SQLAlchemy 创建全文搜索索引