<p>它们是一样的,检查反汇编的python字节码</p>
<pre><code>>>> def sex1 (code):
return {'m': 'masculino', 'f': 'femenino', '': 'ignorado'} [code]
>>> sex2 = lambda code: {'m': 'masculino', 'f': 'femenino', '': 'ignorado'} [code]
>>> dis.dis(sex1)
2 0 BUILD_MAP 3
3 LOAD_CONST 1 ('masculino')
6 LOAD_CONST 2 ('m')
9 STORE_MAP
10 LOAD_CONST 3 ('femenino')
13 LOAD_CONST 4 ('f')
16 STORE_MAP
17 LOAD_CONST 5 ('ignorado')
20 LOAD_CONST 6 ('')
23 STORE_MAP
24 LOAD_FAST 0 (code)
27 BINARY_SUBSCR
28 RETURN_VALUE
>>> dis.dis(sex2)
1 0 BUILD_MAP 3
3 LOAD_CONST 1 ('masculino')
6 LOAD_CONST 2 ('m')
9 STORE_MAP
10 LOAD_CONST 3 ('femenino')
13 LOAD_CONST 4 ('f')
16 STORE_MAP
17 LOAD_CONST 5 ('ignorado')
20 LOAD_CONST 6 ('')
23 STORE_MAP
24 LOAD_FAST 0 (code)
27 BINARY_SUBSCR
28 RETURN_VALUE
</code></pre>
<p>甚至两个都有相同的类型</p>
^{pr2}$