可能是一个天真的问题,但这给我带来了很多麻烦。我想用一些默认值初始化一个列表。我考虑以下两种方法:
1。cache1 = [[-1 for _ in range(5)] for _ in range(5)]
2. cache2 = [[-1]*5]*]
我假设他们的行为完全相同。但是,当我执行以下命令时:
cache1[0][0] = 100
cache2[0][0] = 100
列表更新为:
cache1 = [[100, -1, -1, -1, -1], [100, -1, -1, -1, -1], [100, -1, -1, -1, -1], [100, -1, -1, -1, -1], [100, -1, -1, -1, -1]]
cache2 = [[100, -1, -1, -1, -1], [100, -1, -1, -1, -1], [100, -1, -1, -1, -1], [100, -1, -1, -1, -1], [100, -1, -1, -1, -1]]
有人可以指出两次初始化之间有什么区别吗?谢谢