python-确定长度的字典型数组定义

2021-05-13  本文已影响0人  一只孢子

操作

定义一个包含5个空字典的数组

错误的定义方式

list = [{}]*5

错误原因

python中使用乘号复制时,只复制了3个索引,即都指向同一个物理地址,我们在操作其中任何一个时,会同时修改其他内容。


image.png

python在用乘号(*)复制时,只会复制索引,不会分配物理地址,在对每个元素赋值时才会分配物理地址,而字典的赋值list[1]['B']=2直接跳过了对list[1]的地址分配阶段,因此报错。当我们对list[2]赋值后,该元素即不受影响。

image.png

正确的定义方式

i=0
list=[]
while i<5:
list.append({})
i+=1

image.png

参考:python坑:数组中需要多个字典型时使用乘号复制多个空字典的问题_u011550708的专栏-CSDN博客

上一篇下一篇

猜你喜欢

热点阅读