【发布时间】:2013-04-19 19:09:37
【问题描述】:
谁能解释为什么列表会发生这种情况以及在附加到另一个列表后如何清理列表?
>>> t = {}
>>> t["m"] = []
>>> t
{'m': []}
>>> t["m"].append('qweasdasd aweter')
>>> t["m"].append('asdasdaf ghghdhj')
>>> t
{'m': ['qweasdasd aweter', 'asdasdaf ghghdhj']}
>>> r = []
>>> r.append(t)
>>> r
[{'m': ['qweasdasd aweter', 'asdasdaf ghghdhj']}]
>>> t["m"] = []
>>> r
[{'m': []}]
【问题讨论】:
-
你调用这个行为奇怪,假设当你
append到r时python会隐式复制整个字典,在几乎所有情况下,Python什么都不做,除非你已经明确告诉它了。
标签: python list dictionary