擅长:python、mysql、java
<p>分类正确。你用一种愚蠢的格式按日期字段排序,而不是按照实际日期排序。如果使用标准ISO格式(YYYY-MM-DD),它将按预期排序。另外,如果您使用用于日期的python数据结构,例如来自datetime模块的数据结构,它将按照您的期望进行排序。在</p>
<pre><code>import datetime
mylist = [
['CustomerID_12345', 'TransactionID_1001', datetime.date(2012, 12, 13)],
['CustomerID_12345', 'TransactionID_1002', datetime.date(2013, 3, 12)],
...
]
</code></pre>
<p>或者,借用其他答案。如果您正在某处读取数据并希望将其从原始字符串格式转换为内部表示形式,这可能会对您有所帮助。在</p>
^{pr2}$
<p>或者,只使用字符串。。。在</p>
<pre><code>mylist = [
['CustomerID_12345', 'TransactionID_1001', '2012-31-12'],
['CustomerID_12345', 'TransactionID_1002', '2013-03-12'],
...
]
</code></pre>
<p>如果您已经有一个与问题中的数组类似的数组,则可以轻松地进行转换:</p>
<pre><code>new_list = [f1, f2, datetime.datetime.strptime(f3, '%m/%d/%Y').date()
for f1, f2, f3 in old_list]
</code></pre>
<p>顺便说一下,M/D/YYYY(4/2/2014)格式是有史以来最愚蠢的日期格式之一,只有M/D/yyy(4/2/14)比这更糟糕。在</p>
<p>最好的格式是按大小降序排列单位,因为这也是我们对数字使用的方向。当使用适当的零填充时,它们可以很容易地进行排序(2014-04-02),这就是它们在计算机中,尤其是文件名中找到位置的原因。不太好的格式按升序排列单位,不尊重我们写数字的方式,这个系统在我国使用(今天是2014年4月2日)。但是,不按大小按升序或降序对单位进行排序的mishmash格式是我们几个世纪前就应该消灭的东西。在</p>