在Python中初始化列表的不同方法

时间:2018-01-07 09:17:13

标签: python

可能是一个天真的问题,但这给我带来了很多麻烦。我想用一些默认值初始化一个列表。我考虑以下两种方法:

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]]

有人可以指出两次初始化之间有什么区别吗?谢谢

0 个答案:

没有答案