擅长:python、mysql、java
<p>除了+和*之外,我还发现了它的其他用途是与和或一起使用,但现在我们有了<code>any</code>和<code>all</code>来替换那些情况。</p>
<p><code>foldl</code>和<code>foldr</code>在方案中出现了很多。。。</p>
<p>以下是一些可爱的用法:</p>
<p><b>展开列表</b></p>
<p>目标:把<code>[[1, 2, 3], [4, 5], [6, 7, 8]]</code>变成<code>[1, 2, 3, 4, 5, 6, 7, 8]</code>。</p>
<pre><code>reduce(list.__add__, [[1, 2, 3], [4, 5], [6, 7, 8]], [])
</code></pre>
<p><b>数字到数字的列表</b></p>
<p>目标:把<code>[1, 2, 3, 4, 5, 6, 7, 8]</code>变成<code>12345678</code>。</p>
<p>丑陋,缓慢的方式:</p>
<pre><code>int("".join(map(str, [1,2,3,4,5,6,7,8])))
</code></pre>
<p>漂亮的方式:</p>
<pre><code>reduce(lambda a,d: 10*a+d, [1,2,3,4,5,6,7,8], 0)
</code></pre>