【发布时间】:2014-04-04 09:57:26
【问题描述】:
import csv,operator
from datetime import datetime
li = [['name','01/03/2012','job'],
['name','02/05/2013','job'],
['name','03/08/2014','job']]
排序方法:
sorted(li,key=lambda x:datetime.strptime(row[1],'%d/%m/%Y'), reverse=True)
输出:
没有错误,只是没有排序
Itemgetter 方法:
for x in range(1,len(li)):
li[x][6]=datetime.strptime(li[x][6],'%d/%m/%Y')
li.sort(key=operator.itemgetter(6))
输出:
Traceback (most recent call last):
File "U:/rmarshall/Work For Staff/ROB/_Python/__Python Projects Code/April Signed Terms.py", line 35, in <module>
li.sort(key=operator.itemgetter(6))
TypeError: unorderable types: datetime.datetime() < str()
谁能提供一个按日期排序列表 li 的示例。出于教育目的,我将欣赏 sorted 方法和 itemgetter 方法的示例以及效率比较。
此外,由于 itemgetter 方法的错误,itemgetter 根本无法处理 datetime 对象。
注意:我认为在这个例子中升序或降序并不重要,因为它可以简单地用reverse=True翻转。
【问题讨论】:
标签: python string sorting datetime