擅长:python、mysql、java
<p>在功能上,您可以将<code>map</code><sup>2</sup>与<code>dict.get</code>一起使用:</p>
<pre><code>stateNames = list(map(statesDict.get, statesAbbrv))
</code></pre>
<p>如果找不到缩写匹配项,则会给出<code>None</code>。更严格的版本将产生<code>KeyError</code>:</p>
<pre><code>stateNames = list(map(statesDict.__getitem__, statesAbbrv))
</code></pre>
<p>后者类似于列表理解,因为<code>[]</code>是访问<code>__getitem__</code>的语法:</p>
<pre><code>stateNames = [statesDict[i] for i in statesAbbrv]
</code></pre>
<p>如果希望在找不到键时提供回退,请使用带有<code>dict.get</code>的列表理解:</p>
<pre><code>stateNames = [statesDict.get(i, 'Fallback State') for i in statesAbbrv]
</code></pre>
<hr/>
<p>函数程序设计是一种将计算看作是对数学函数的求值的程序设计。另见<a href="https://stackoverflow.com/questions/2078978/functional-programming-vs-object-oriented-programming">Functional programming vs Object Oriented programming</a>。你知道吗</p>
<p>在python2.x中,显式的<code>list</code>转换是不必要的,因为<code>map</code>返回一个<code>list</code>。在python3中,<code>map</code>返回一个iterable,需要通过<code>list</code>耗尽它。你知道吗</p>