我有一个python列表,由model = [[[[0,0,0,0]]*4]*15]*5
创建,这个列表看起来像这样(没有简短的点):model = [[[[0,0,0,0],...[0,0,0,0]]...[[0,0,0,0],...[0,0,0,0]]]...[[[0,0,0,0],...[0,0,0,0]]...[[0,0,0,0],...[0,0,0,0]]]]
。问题是,当我尝试使用
def setLED(model,boardid,chipid,tankid,ledid,value):
model[boardid][chipid][tankid][ledid]=value
每个4个0的列表都被设置为相同的。i、 e.如果我尝试使用setLED(model,0,0,0255),则每个4个0的列表中的第一个值将是255。预期的结果是,只有4个零的第一个列表(即模型[0][0][0][0])会被更改。我不认为有办法附上文件,但如果有人需要,我可以张贴清单的全部内容。你知道吗
提前感谢任何能找出原因的人。你知道吗
编辑:这是Nested List Indices的副本
创建这样的数组时:
您正在创建一个数组,其中包含对同一数组的n个引用。您需要以另一种方式添加新数组。一种方法是使用列表理解,即
它会创建新的数组,而不是重用引用。你知道吗
相关问题 更多 >
编程相关推荐