0

我试图将这一行放在我的代码中,试图创建一个 80*80 的网格:

a = [[0] * 80] * 80

然而,事实证明我有 80 次引用相同的列表,我花了很长时间才意识到这个问题。

我想知道有没有办法理解/记住python在常用方法中的引用方式?

谢谢!

4

1 回答 1

1

是的,如果您这样做,您将拥有同一列表的 N 个引用。

如果您想拥有可以独立操作的不同列表,您可以执行以下操作:

a = [[0 for x in xrange(80)] for y in xrange(80)]

请注意,我使用的是 xrange 而不是 range:这是一个生成器,不会在内存中分配范围。

于 2012-04-15T06:21:31.697 回答