Zip两个dict包含Python中的列表

时间:2013-11-22 03:20:01

标签: python python-2.7

我有n个包含值的dict,如

之类的列表
{"1":[{'q': ['Data'], 'q1': '110'}]}

{"2":[{'q2':["other Data"], "q3" : "exp"},{'q2':["other Data2"], "q3" : "exp2"}]}

我想要这种格式的输出: -

{"1":[{'q': ['Data'], 'q1': '110'}],"2":[{'q2':["other Data"], "q3" : "exp"}]}
{"2":{'q2':["other Data2"], "q3" : "exp2"}

表示zip或我们可以拆分dict键的基础,并为每个键添加一个值(如果存在)。

1 个答案:

答案 0 :(得分:1)

dict1.update(dict2)对你有用吗?这只会使用dict1中的值更新dict2

编辑:

这可能有效:

dicts=[]
dicts.append({"1":[{'q': ['Data'], 'q1': '110'}]})
dicts.append({"2":[{'q2':["other Data"], "q3" : "exp"},{'q2':["other Data2"], "q3" : "exp2"}]})

a=[[{key: j} for key in d2 for j in d2[key]] for d2 in dicts ]

nmax=max(len(x) for x in a)

newdicts=[dict() for i in range(nmax)]

for i in range(nmax):    
    for j in range(len(a)):
        if i < len(a[j]):    
            newdicts[i].update(a[j][i])

for i in newdicts:
    print i

这给了我:

{'1': {'q': ['Data'], 'q1': '110'}, '2': {'q3': 'exp', 'q2': ['other Data']}}
{'2': {'q3': 'exp2', 'q2': ['other Data2']}}