解决:不知道为什么现在暂停,Damian Yerrick帮助解决了问题,他和我似乎很清楚。谢谢!
编辑:有人提到使用日期时间,但我不明白如何将整个列表整理为一个,当我拆分每个单元组时:
我有点困惑如何对此进行排序,我是否需要拆分它?现在只按日期排序。格式如下:
(31/03/2016 19:42:28,value)
def sortDB(tupleList):
dtList = []
for tuple in tupleList:
dt = datetime.datetime.strptime(tuple[0], "%d/%m/%Y %H:%M:%S")
dtList.append(dt)
#Not sure how to get to here... AND keep the same date format I had in the beginning as I don't want it to change
sortedKeyList = sorted(tupleList, key=itemgetter(0), reverse=True)
答案 0 :(得分:1)
Python中的排序基于从每个项目派生的“密钥”。它将每个项目转换为一个键,按键对项目进行排序,然后丢弃键,保留原始项目。 Python通常使用项本身作为键,对于元组,这与使用元组的元素及其正常的比较行为相同。你需要创建一个覆盖默认密钥派生的函数,然后告诉Python在对原始项进行排序时使用该函数。
def getDateFromTuple(tuple):
return datetime.datetime.strptime(tuple[0], "%d/%m/%Y %H:%M:%S")
sortedKeyList = sorted(tupleList, key=getDateFromTuple, reverse=True)
这样,Python的sorted()
函数将在被排序的序列(key
)的每个元素上调用getDateFromTuple()
函数(在本例中为tupleList
)。这会导致Python按解析的日期而不是每个元组中的文字字符串对tupleList
的元素进行排序。
有关key
的其他说明,请参阅the section "Key Functions" in Python Sorting HOW TO和documentation for sorted()
。