创建Python列表

时间:2013-12-08 02:09:12

标签: python list python-2.7 multidimensional-array

我习惯于C编程,如果你想分配空间2d数组,你只需将其声明为

int a [20] [20];

我还不习惯Python编程(我还在C心态)

我想在这段代码中声明一个列表列表,并将每个元素初始化为无。

class World:
    def __init__(self):
        grid = [[none]*20]*20

由于某种原因,它看起来不对我。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

grid = [[None]*20]*20 will give you a list of 20 sublists, each of which contains 20 None`s。但是,所有子列表都将引用内存中的相同列表,因此更改一个列表将影响它们。

你最好做这样的事情:

grid = [[None for _ in xrange(20)] for __ in xrange(20)]

这将为您提供20个不同的子列表,每个子列表包含20个None s

Further reading