<p><a href="https://docs.python.org/2/library/functions.html#sorted" rel="nofollow">Sorting of lists accepts a ^{<cd1>} parameter</a>指定如何对列表中的项进行排序。唯一的挑战是你的是基于一个日期而不是一个简单的比较。在</p>
<pre><code>firstItemDate = lambda x:date(*map(int,(x.split(",",1)[0].split("/"))[::-1]))
print sorted(data[1:],key=firstItemDate)
</code></pre>
<p>键<code>firstItemDate</code>可以按如下方式分解:</p>
<ul>
<li><a href="https://docs.python.org/2/reference/expressions.html#lambda" rel="nofollow">^{<cd3>}</a>-一个接受参数的匿名函数(数组的每一行)</li>
<li><code>date(</code>-创建一个<a href="https://docs.python.org/2/library/datetime.html#date-objects" rel="nofollow">datetime.date</a>对象(这需要3个参数)</li>
<li><code>*</code>-<a href="https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists" rel="nofollow">unpack the argument list</a>到<code>date</code>函数中</li>
<li><code>map(int,(</code>-<a href="https://docs.python.org/2/library/functions.html#map" rel="nofollow">^{<cd8>}</a>一个函数,在本例中,<a href="https://docs.python.org/2/library/functions.html#int" rel="nofollow">^{<cd9>}</a>转换为一个列表</li>
<li><code>x.split(",",1)[0]</code>-<a href="https://docs.python.org/2/library/stdtypes.html#str.split" rel="nofollow">^{<cd11>}</a>这一行由逗号组成(作为一个csv),取0<sup>th</sup>元素-根据Jons的评论,我们可以将其限制为1个拆分,因为我们只处理第一列。在</li>
<li><code>.split("/")</code>-<a href="https://docs.python.org/2/library/stdtypes.html#str.split" rel="nofollow">^{<cd11>}</a>将<code>/</code>上的0<sup>th</sup>元素作为其日期</li>
<li><code>)[::-1]))</code>-使用数组切片来反转列表,因此它是年、月、日</li>
</ul>
<p>因为日期对象定义了它们的排序方式,这将确保日期有效并正确排序。在</p>
<p>为了简洁起见,如果您再也不打算使用<code>firstItemDate</code>函数,可以将其插入<code>sorted</code>调用中,如下所示:</p>
^{pr2}$