擅长:python、mysql、java
<p>这里有一个不太惯用的方法,但它是有效的;<code>next</code>函数可以接受第二个参数,如果第一个参数是空迭代器,则返回第二个参数</p>
<pre class="lang-py prettyprint-override"><code>>>> def is_even(x): return x % 2 == 0
...
>>> very_long_variable_name = 12
>>> next(filter(is_even, [very_long_variable_name]), 'default')
12
>>> very_long_variable_name = 13
>>> next(filter(is_even, [very_long_variable_name]), 'default')
'default'
</code></pre>
<p>如果您发现自己必须经常这样做,那么编写一个helper函数可能是值得的,这样您就可以编写例如<code>if_else(is_even, very_long_variable_name, 'default')</code></p>
<pre class="lang-py prettyprint-override"><code>def if_else(predicate, a, b):
return a if predicate(a) else b
</code></pre>