<p>我的问题的简化版本:</p>
<p>我有一个列表理解,用于在二维列表上设置位标志,因此:</p>
<pre><code>s = FLAG1 | FLAG2 | FLAG3
[[c.set_state(s) for c in row] for row in self.__map]
</code></pre>
<p>set_state所做的就是:</p>
^{pr2}$
<p>这很好用,但是我必须在每个单元格中设置函数“set_state”。地图上的每个单元格都有一个.状态,所以我要做的是:</p>
<pre><code>[[c.state |= s for c in row] for row in self.map]
</code></pre>
<p>或者</p>
<pre><code>map(lambda c: c.state |= s, [c for c in row for row in self.__map])
</code></pre>
<p>但两者都不起作用(语法错误)。也许我用map/lamda找错树了,但我想把set AU state除掉。或许知道为什么作业在列表理解中不起作用</p>