擅长:python、mysql、java
<p>为什么不将<a href="https://docs.python.org/3/reference/expressions.html#grammar-token-generator_expression" rel="nofollow">generator expression</a>与<code>sum</code>一起使用:</p>
<pre><code>return sum(distance(location, location+1) for location in route)
</code></pre>
<p>这个解决方案避免了像第一个解决方案那样创建一个不必要的列表(节省内存消耗),而且比第二个解决方案简洁得多(清洁度很重要)。你知道吗</p>
<p>也就是说,您总是可以将第一个解决方案合并为一个线性:</p>
<pre><code>return sum([distance(location, location+1) for location in route])
</code></pre>
<p>但是,就像我上面说的,为什么要创建一个列表来丢弃它呢?你知道吗</p>