擅长:python、mysql、java
<p>生成列表或从列表生成另一个iterable结构是列表理解的最佳用例之一。代码的问题是<code>append</code>操作没有返回任何内容。因为这就是你在<code>my_list</code>中存储的内容,当你打印<code>my_list</code>时,你会得到<code>[None, None, None]</code></p>
<p>此外,在我看来,您实际上要做的是从字典中获取给定键集的所有值</p>
<p>您可以通过在列表理解中返回字典中的值,而不是使用附加到的第三个列表来实现这一点,例如:</p>
<pre class="lang-py prettyprint-override"><code>my_list = [port_hdl_dict[i] for i in source]
</code></pre>
<p>以上是一个没有验证的非常简单的例子。因此,例如,如果<code>i</code>不是<code>port_hdl_dict</code>内的有效键,那么代码将引发异常。
只需检查<code>i</code>是否在<code>port_hdl_dict</code>中,就可以添加一些简单的验证</p>
<pre class="lang-py prettyprint-override"><code>my_list = [port_hdl_dict[i] for i in source if i in port_hdl_dict]
</code></pre>