我用循环进行列表初始化:
for i in range(1,8): #周一到周日
for jie in range(1,13): #第一小节到第十二小节
dict[jie] = 0
# 把字典添加到列表中
list.append(dict)
之后进行赋值时,所有的字典都变化:
比如 list[0][1]=5,我只赋值【0】【1】,但实际是【0】【1】、. 、【7】【1】都被改变了。
我想大概是地址的问题,但是我不知道怎么解决,我的问题就是要怎么初始化?
描述如果不清楚,请看图示:
初始化得:
[{1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0},
{1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0},
.
{1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0}]
赋值 list[0][1]=5 后,得:
[{1: 5, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0},
{1: 5, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0},
.
{1: 5, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0}]