我有多个像这样的字典/键值对:
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)}
如果有人告诉我如何获得第一个结果,那么我可以找出其余的结果。
假设所有键始终存在于所有字典中:
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))