【发布时间】:2015-03-25 07:57:36
【问题描述】:
很多时候我发现自己使用copy.deepcopy() 来创建dict 的副本,然后使用del 我不需要的属性。
我不做以下事情:
- 参考现有
dict;因为我需要在保留原始dict的同时操纵这些值。 - 复制我真正需要的
dict的特定属性;因为有时我必须操纵现有属性来创建新属性(对于新的dict),之后我不需要现有的属性(在新的dict中)。
我能想到的替代方案:
- 大量使用临时变量而不是
copy.deepcopy整个dict,并让临时变量随作用域自动过期。
那么,我是按照 Python 的方式来做的吗?
【问题讨论】:
-
用现有属性创建新属性然后删除它们是什么意思?我不明白第 2 点。
-
我的意思是我需要新
dict中的某些属性,这些属性在旧dict中不存在,但可以通过修改旧dict的一些现有属性来生成。跨度> -
那你为什么不先把这些属性从旧字典中复制出来,然后在新字典中修改这些属性呢?正如您所说,无论如何您都必须在旧字典中修改这些以创建新字典。这样,您就可以使用复制特定属性的方法。
-
是的,我可以,但这会给我留下同样的问题,即我必须
del来自新dict的旧属性(一旦我用旧的修改形式)。 -
我认为您最好在问题中发布一些示例和预期输出,以帮助我们更好地理解。
标签: python memory dictionary copy