擅长:python、mysql、java
<p>你可以把月份和它们在日历中的相应位置编成字典:</p>
<pre><code>months = {'january': 1,
'april': 4,
'july': 7,
'december': 12}
</code></pre>
<p>然后通过在字典中查找月份对列表进行排序。首先在下划线上拆分列表的每个元素(它给出一个列表,如<code>['dog', 'january']</code>),然后使用<code>months.get</code>在字典中查找此列表的最后一个元素:</p>
<pre><code>>>> sorted(my_list, key=lambda x: months.get(x.split('_')[-1]))
['dog_january', 'apple_april', 'banana_july', 'carrot_december']
</code></pre>
<p>编辑:</p>
<p>如果你已经安装了<code>dateutil</code>,这是一种更懒惰的方法。。。你知道吗</p>
<pre><code>>>> import dateutil
>>> sorted(my_list, key=lambda x: dateutil.parser.parse(x.split('_')[-1]))
['dog_january', 'apple_april', 'banana_july', 'carrot_december']
</code></pre>
<p>不需要字典!<code>dateutil.parser.parse</code>将月份字符串解析为<code>datetime</code>对象。你知道吗</p>