下面是一道面试题
m = {1: 2, 3: 4}
for k, v in m.items():
m[k + 2] = v + 2
l = m
l[9] = 10
func(1)
m[7] = 8
问:l 和 m 的内容分别是啥。
注意:1.在这里,这个程序运行不了会报错,因为在循环中遍历字典的时候,不能做涉及字典的键的操作。
2.l = m 是浅拷贝,所以当注释了func(1)时,最后,l 和 m 中的内容是一致的。
本文通过一道面试题解析Python中字典的循环修改及浅拷贝特性,重点介绍了在循环过程中修改字典可能引发的错误,并解释了变量赋值在Python中产生的浅拷贝效果。
下面是一道面试题
m = {1: 2, 3: 4}
for k, v in m.items():
m[k + 2] = v + 2
l = m
l[9] = 10
func(1)
m[7] = 8
问:l 和 m 的内容分别是啥。
注意:1.在这里,这个程序运行不了会报错,因为在循环中遍历字典的时候,不能做涉及字典的键的操作。
2.l = m 是浅拷贝,所以当注释了func(1)时,最后,l 和 m 中的内容是一致的。
4598

被折叠的 条评论
为什么被折叠?