擅长:python、mysql、java
<p>如果您试图递归地在可比较的值列表中查找最大的元素,那么应该这样做:</p>
<pre><code>def chooseBest(s):
if not s:
return None
best = chooseBest(s[1:])
return s[0] if s[0] > best else best
</code></pre>
<p>甚至更短:</p>
<pre><code>def chooseBest(s):
return max(s[0], chooseBest(s[1:])) if s else None
</code></pre>
<p>无论哪种方式,它都适用于内置的可比较数据类型。如果出于某种原因需要将其与定义的类型进行比较,请不要忘记将其与<code>None</code>进行比较:</p>
<pre><code>chooseBest([1, 2, 5, 3, 4])
=> 5
chooseBest(['a', 'b', 'z', 'c', 'd'])
=> 'z'
</code></pre>