我很抱歉这么愚蠢的问题,我不习惯面向对象的编程(我来自C背景)。说穿了,我对课很无能为力。首先,这是如何初始化list属性并将每个元素设置为None?
class World:
def __init__(self):
self.arr = [[None for x in range(20)] for y in range(20)]
另外,我想检查每个值实际上是否设置为none,但我不知道如何将其打印出来。
答案 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