如何从一个字典列表中制作一组词典?在
示例:
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
如何从列表data
创建一组词典?在
NS:一本字典在结构上是相同的,就等于另一本。也就是说,他们得到了相同的键和值(递归地)
不完全是你要找的东西,因为这也说明了列表,但是:
一个廉价的解决方法是将您的dict序列化,例如:
从长远来看,将整个东西包装在一个类中是有意义的,比如
SetOfDicts
。在字典是可变的,因此在python中不可散列。在
您可以使用
__hash__
方法创建dict子类。确保字典的哈希在集合中时不发生更改(这可能意味着您不能允许修改成员)。 请参见http://code.activestate.com/recipes/414283-frozen-dictionaries/以获取冻结dicts的示例实现。在如果可以在(冻结的)字典上定义排序顺序,则可以使用基于二叉树而不是集合的数据结构。这可以归结为下面链接中提供的对分解决方案。在
另请参见https://stackoverflow.com/a/18824158/5069869,以了解不带哈希的集合没有意义的解释。在
相关问题 更多 >
编程相关推荐