test_list = []
dic1 = {}
test_list = [dic1 for _ in range(3)]
ll = [1, 2, 3]
for i in range(3):
test_list[i]['value'] = ll[i]
print(test_list)
运行结果:每次赋值都更改了所有项
原因:python的二位数据创建方式就是这样,官方文档中有描述What has happened is that [[]] is a one-element list containing an empty list,
so all thr服务器托管网ee elements of [[]] * 3 are references to this single empty list.
Modifying any of the elements of lists modifies this single list. You can create a list of different lists this way:
>>> lists = [[] for i in range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]
那么,将上述代码修改为:
test_list = []
test_list = [{} for _ in range(3)]
ll = [1, 2, 3]
for i in range(3):
test_list[i]['value'] = ll[i]
print(test_list)
结果正确:
服务服务器托管网器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 【Java技术专题】「入门到精通系列」深入探索Java技术中常用到的六种加密技术和实现
背景介绍 重点记住现代密码学的柯克霍夫原则:数据安全取决于密钥而不是算法的保密。即使密码系统的细节已经公开,只要密钥保密,系统依然可以保持安全。本文介绍了6种常用的加密技术和相应的代码实现。 柯克霍夫原则 柯克霍夫原则(Kerckhoffs’s princip…