将词典列表转换为一组词典

BPL*_*BPL 4 python dictionary

如何从一个词典列表中制作一组词典?

例:

import copy

v1 = {'k01': 'v01', 'k02': {'k03': 'v03', 'k04': {'k05': 'v05'}}}
v2 = {'k11': 'v11', 'k12': {'k13': 'v13', 'k14': {'k15': 'v15'}}}

data = []
N = 5
for i in range(N):
    data.append(copy.deepcopy(v1))
    data.append(copy.deepcopy(v2))

print data
Run Code Online (Sandbox Code Playgroud)

您将如何从列表中创建一组词典data

NS:一本字典在结构上相同时就等于另一本。这意味着,它们具有完全相同的键和相同的值(递归)

geo*_*org 5

一种便宜的解决方法是序列化您的字典,例如:

import json

dset = set()

d1 = {'a':1, 'b':{'c':2}}
d2 = {'b':{'c':2}, 'a':1} # the same according to your definition
d3 = {'x': 42}

dset.add(json.dumps(d1, sort_keys=True))
dset.add(json.dumps(d2, sort_keys=True))
dset.add(json.dumps(d3, sort_keys=True))

for p in dset:
    print json.loads(p) 
Run Code Online (Sandbox Code Playgroud)

从长远来看,将整个东西包裹在一个类里是有意义的SetOfDicts