您正在将对字典的引用添加到列表中,然后清除字典 本身 。这将删除字典的内容,因此对该字典的所有引用将显示该字典现在为空。
将其与创建两个指向同一词典的变量进行比较:
>>> a = {'foo': 'bar'}>>> b = a>>> b{'foo': 'bar'}>>> a.clear()>>> b{}
字典是可变的;您更改对象本身。
在循环中创建一个新字典,而不是清除并重用一个字典:
list_ = []for i in range(something): dict_ = {} get_values_into_dict(dict_) list_.append(dict_)print list_
或者更好的是,
get_values_into_dict()返回 一个字典来代替:
list_ = []for i in range(something): dict_ = return_values_as_dict() list_.append(dict_)print list_
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)