如何以格式对日期进行排序:日/月/年小时:分钟:秒

时间:2016-04-06 15:50:54

标签: python sorting sorted

解决:不知道为什么现在暂停,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)

1 个答案:

答案 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 TOdocumentation for sorted()