【发布时间】:2018-07-03 05:53:22
【问题描述】:
我是 python 新手。当我在玩代码时,我发现了这个。
源代码:
dic = {}
mem_dic = {}
def set_op(ind, data):
global dic, mem_dic
key, value = data.split()
dic[key] = int(value)
mem_dic[ind] = dic
print(ind, "====", mem_dic)
set_op(0, 'aaa 1')
set_op(1, 'bbb 2')
预期输出:
0===={0:{'aaa':1}}
1===={0:{'aaa':1},1:{'aaa':1,'bbb':1}}
实际输出:
0===={0:{'aaa':1,'bbb':1}}
1===={0:{'aaa':1,'bbb':1}}
谁能解释一下这种行为的原因。以及我应该进行哪些更改才能获得预期的输出。
【问题讨论】:
-
你能解释一下你想在这里做什么吗?
-
@LutzHorn 在这里我试图在迭代期间跟踪字典中的变化
-
请注意,您声明的实际输出与我在 python2.7 上运行时得到的实际输出不匹配;不确定这是否是编辑后更改内容的人工制品,但这对您的问题没有帮助。
标签: python dictionary