我正在用Python写一个程序。我有一个使用列表的2D矩阵实现,我已经声明了所有函数的范围。这个想法是存储在从随后的函数调用计算出的矩阵值中。我的代码是这样的:矩阵值被覆盖 - Python
database=[[0 for i in range(2)] for j in range(2)] #2-D matrix
def func(data,x,y):
#manipulate the list data and then store it in database[x][y]
data[1]+=1
database[x][y]=data
print("database[0][0]={}, database[1][1]={}".format(database[0][0], database[1][1]))
del data[:]
def main():
data=['one',1]
func(data,0,0)
data=['two',2]
func(data,1,1)
if __name__=="__main__":main()
最后,我得到数据库[0] [0]为不同的东西。我想知道为什么index [0] [0]没有['one',2]!任何帮助,将不胜感激。谢谢!
我试着运行你的代码,它工作正常(没有覆盖)。 – Bitwise
我没有发布实际的代码,因为它涉及存储进入网络接口的数据包,然后将几个字段存储到列表中。它的一种复杂。我应该在这里发布代码吗? – shank22
简化代码更好,但前提是您可以重新创建问题。否则没人能帮忙。 – Bitwise