在python 2.7中打印出2d列表

时间:2013-12-10 00:04:05

标签: python list class

我很抱歉这么愚蠢的问题,我不习惯面向对象的编程(我来自C背景)。说穿了,我对课很无能为力。首先,这是如何初始化list属性并将每个元素设置为None?

class World:
    def __init__(self):
        self.arr = [[None for x in range(20)] for y in range(20)]

另外,我想检查每个值实际上是否设置为none,但我不知道如何将其打印出来。

1 个答案:

答案 0 :(得分:2)

既然你接受了我无法删除的答案,那么我会尝试修改它。

这是错误的方式:

mylist = [[None] * 2] * 2    # Definitely not what you want

以上情况很糟糕,因为如果你这样做

mylist[0].append(1)

输出

[[None, None, 1], [None, None, 1]]

原因是我们没有创建2个列表的列表,而是列表2 引用相同列表。

正确的方法可能是你已经拥有的或者:

mylist = [[None] * 20 for i in range(20)]

我不确定你的意思是“想检查它是否设置为无”。

例如这样的东西?

w = World()  # make a world instance
print w.arr  # This should print your 2d list