<p>在Python中执行以下操作的最佳方法是什么:</p>
<pre><code>for item in [ x.attr for x in some_list ]:
do_something_with(item)
</code></pre>
<p>这可能是一个关键问题,但列表理解不是生成了一个我们不需要的新列表并占用内存吗?如果我们能做一个像迭代器一样的列表理解不是更好吗。在</p>
<p>是的(对你的两个问题)。在</p>
<p>通过使用括号而不是方括号,你可以为这个序列生成一个所谓的“生成器表达式”,这正是你所建议的。它允许您迭代序列,而无需分配一个列表来同时保存所有元素。在</p>
<pre><code>for item in (x.attr for x in some_list):
do_something_with(item)
</code></pre>
<p>{a1}的详细信息记录在^表达式中。在</p>