擅长:python、mysql、java
<p>一个选项是在新映射中创建所有宇宙值的<code>set</code>。例如,使用上面示例中的映射:</p>
<pre><code>>>> universes = {v['universe'] for v in current.values()}
>>> universes
{1, 2}
</code></pre>
<p>然后,您可以使用新变量<code>universes</code>而不是前面所做的<code>conf.values()</code>。当然,如果您生成并分配了一个新的宇宙,您还需要记住将其添加到此哈希集,如下所示:</p>
<pre><code>>>> universes.add(3)
>>> universes
>>> {1, 2, 3}
</code></pre>
<p>然后需要对<code>get_free_universe</code>函数稍加修改:</p>
<pre class="lang-py prettyprint-override"><code>def get_free_universe():
# generate a new universe
new_universe = next(
i
for i in range(1, 128)
if i not in universes
)
# add to known universes
universes.add(new_universe)
return new_universe
</code></pre>