如上图所示,在最后输出时,发现添加进的字典都变成最后一次的字典。然后在循环里打个点,进行分析
第一步:
如上图所示,这是刚开始的样子,是正常的,然后我们点击下一步
列表l加入了字典a,也是正常的
第二步:
此时字典a的value为1,并且影响到了l列表里的字典a,所以可以看到,在l列表里,字典已经发生了变化。也就是说,在l列表中的a字典,会实时地受到a字典的变化而发生改变,相当于浅拷贝。
而如果把字典挪动到循环里面,则在每次循环的过程中都对这个字典初始化了,添加到l列表里的字典也就不是原来的字典了,就可以避免这个现象的发生。
或者在循环的过程中直接传入一个字典,而不是变量