标签:
今天在用python写爬虫的过程中出现了一个问题,简明表述如下:
example = dict() list = [] for i in range(0,3,1): example[‘key‘] = i list.append(example) print list
输出为:
[{‘key‘: 2}, {‘key‘: 2}, {‘key‘: 2}]
很显然这不是我要的结果,幸运的是很快我就发现了问题所在,即example的定义位置有问题。于是我把定义example的位置放在循环内部重新测试。
list = [] for i in range(0,3,1) : example = dict() example[‘key‘] = i list.append(example) print list
输出为
[{‘key‘: 0}, {‘key‘: 1}, {‘key‘: 2}]
结果显而易见了,造成之前错误的原因正是我对python中字典理解的不深刻。对于写java的人说,Python里的dict字典类似于java中的对象,所以申请一个字典类似于申请一个对象,是动态可变的。如果在某处修改的字典的一个value,则所有相关联的之前引用到的value值都将被更新到新的值。
标签:
原文地址:http://www.cnblogs.com/jzb-blog/p/4843751.html