要从字典列表中查找,很简单:
您可以使用以下表格:
DL={'a':[0,1],'b':[2,3], 'c':[4,5]}
LD=[{'a':0,'b':2, 'c':4},{'a':1,'b':3, 'c':5}]
nd={}
for d in LD:
for k,v in d.items():
try:
nd[k].append(v)
except KeyError:
nd[k]=[v]
print nd
#{'a': [0, 1], 'c': [4, 5], 'b': [2, 3]}
或者使用 defaultdict :
nd=cl.defaultdict(list)
for d in LD:
for key,val in d.items():
nd[key].append(val)
print dict(nd.items())
#{'a': [0, 1], 'c': [4, 5], 'b': [2, 3]}
反过来做是有问题的。你需要了解字典中键插入列表的顺序。回想一下,字典中键的顺序不一定与原始插入顺序相同。
为了好玩,假设插入顺序是基于排序的键的。然后你可以这样做:
nl=[]
nl_index=[]
for k in sorted(DL.keys()):
nl.append({k:[]})
nl_index.append(k)
for key,l in DL.items():
for item in l:
nl[nl_index.index(key)][key].append(item)
print nl
#[{'a': [0, 1]}, {'b': [2, 3]}, {'c': [4, 5]}]
如果你的问题是基于好奇,那么这就是你的答案。如果你遇到了现实问题,我建议你重新考虑你的数据结构。这两种方法似乎都不是一个非常可扩展的解决方案。