我的问题简化如下:
我有一个列表推导式,用于在二维列表上设置位标志,代码如下:
s = FLAG1 | FLAG2 | FLAG3
[[c.set_state(s) for c in row] for row in self.__map]
set_state的作用只是:
self.state |= f
这个代码很好用,但是我必须在__map的每个单元格中都要有“set_state”函数。__map中的每个单元格都有一个.state,所以我试图做的是:
[[c.state |= s for c in row] for row in self.map]
或者
map(lambda c: c.state |= s, [c for c in row for row in self.__map])
除非两者都不起作用(语法错误),也许我在使用地图/拉姆达时错了,但是我想摆脱set_state。也许知道为什么赋值在列表推导式中不起作用。