擅长:python、mysql、java
<pre><code>min([mincoinList[price-coin] for coin in coins if coin <= price]) + 1
</code></pre>
<p>让我们切断这条线</p>
<p>其中的核心部分是以下列表:</p>
<pre><code>[mincoinList[price-coin] for coin in coins if coin <= price]
</code></pre>
<p>列表理解是一种通过循环某个序列来创建列表的方法。在本例中,我们为<code>coins</code>列表中的每个<code>coin</code>创建一个值为<code>mincoinList[price - coin]</code>的元素的列表,如果<code>coin</code>的值小于或等于<code>price</code></p>
<p>换言之,它选择那些比价格低的硬币,然后对于每一个,它从<code>mincoinList</code>中得到一个元素,以价格和硬币的差值作为索引</p>
<p>最后,该列表被传递给<a href="https://docs.python.org/3/library/functions.html#min" rel="nofollow">^{<cd7>}</a>,后者只返回列表中值最低的元素。然后将该值递增1,并从函数返回</p>
<hr/>
<p>您可以用一个非常详细的多行代码来编写这一切,如下所示:</p>
<pre><code>selectedCoins = []
for coin in coins:
if coin <= price:
selectedCoins.append(mincoinList[price - coin])
return min(selectedCoins) + 1
</code></pre>