<p>使用排序键函数查找月份:</p>
<pre><code>def sort_by_month(entry):
return meses_ord[entry['month']]
sorted(fechas_, key=sort_by_month)
</code></pre>
<p>排序函数也可以表示为lambda,只需确保它接受一个参数:</p>
<pre><code>sorted(fechas_, key=lambda entry: meses_ord[entry['month']])
</code></pre>
<p>演示:</p>
<pre><code>>>> from decimal import Decimal
>>> from pprint import pprint
>>> meses_ord = {'January': 1, 'February': 2, 'March': 3, 'April': 4}
>>> fechas_ = [{'anyo': 2010, 'horas': Decimal('52.5'), 'month': 'March', 'importe': Decimal('4200.000')},
... {'anyo': 2010, 'horas': Decimal('40.0'), 'month': 'February', 'importe':Decimal('3200.000')},
... {'anyo': 2010, 'horas': Decimal('42.5'), 'month': 'April', 'importe': Decimal('3400.000')},
... {'anyo': 2010, 'horas': Decimal('20.0'), 'month': 'January', 'importe': Decimal('1600.000')}]
>>> pprint(sorted(fechas_, key=lambda entry: meses_ord[entry['month']]))
[{'anyo': 2010,
'horas': Decimal('20.0'),
'importe': Decimal('1600.000'),
'month': 'January'},
{'anyo': 2010,
'horas': Decimal('40.0'),
'importe': Decimal('3200.000'),
'month': 'February'},
{'anyo': 2010,
'horas': Decimal('52.5'),
'importe': Decimal('4200.000'),
'month': 'March'},
{'anyo': 2010,
'horas': Decimal('42.5'),
'importe': Decimal('3400.000'),
'month': 'April'}]
</code></pre>