python list comprehension vs. * list的操作

时间:2018-04-21 16:00:01

标签: python list-comprehension

现在我正在重构一些代码,我发现了一些奇怪的东西。

我认为以下两个表达式完全相同:

list1 = [[0.00] * 5 for _ in range(5)]
list2 = [[0.00] * 5] * 5

我可以看到他们通过运行来获得相同的结果:

print(list1 == list2)

import numpy as np
print(np.array(list1).shape == np.array(list2).shape)

但在我正在修改的项目中,list2不起作用。当我使用它时,它会提升“索引超出范围”。

如我所说,请告诉我'list1 == list2',或者我是否错了。

提前致谢。

P.S。我可以使用numpy.zeros()或其他一些东西,但我真的很好奇。

0 个答案:

没有答案