蟒蛇的问题在这里:排序列表中不会产生正确的结果
我运行一个排序功能按日期,一些数据进行排序,并得到不正确的输出。我准备了一些简短版本的代码,其中包含一些示例数据以显示错误(完整的代码无趣,完整的实际数据是专有的)。
下面是代码:
import operator
mylist = [['CustomerID_12345', 'TransactionID_1001', '12/31/2012'],
['CustomerID_12345', 'TransactionID_1002', '3/12/2013'],
['CustomerID_12345', 'TransactionID_1003', '1/7/2013'],
['CustomerID_12345', 'TransactionID_1004', '12/31/2012']]
sorted_list = sorted(mylist, key=operator.itemgetter(2))
print type(mylist)
print len(mylist)
for i in mylist:
print i
print "" # just for a line break for convenience
for i in sorted_list:
print i
并且输出是:
<type 'list'>
4
['CustomerID_12345', 'TransactionID_1001', '12/31/2012']
['CustomerID_12345', 'TransactionID_1002', '3/12/2013']
['CustomerID_12345', 'TransactionID_1003', '1/7/2013']
['CustomerID_12345', 'TransactionID_1004', '12/31/2012']
['CustomerID_12345', 'TransactionID_1003', '1/7/2013']
['CustomerID_12345', 'TransactionID_1001', '12/31/2012']
['CustomerID_12345', 'TransactionID_1004', '12/31/2012']
['CustomerID_12345', 'TransactionID_1002', '3/12/2013']
第一块是原始数据,并且第二个是输出。由于我试图按日期排序,很容易发现排序无法正常工作。
有人能帮助解释错误,并建议如何纠正呢? 感谢提前:)
它做正确,因为字符串以'“1''小于开始'串” 3''。同样''2'是''/''。 – metatoaster