Python list sort in descending order


Question

How can I sort this list in descending order?

timestamp = [
    "2010-04-20 10:07:30",
    "2010-04-20 10:07:38",
    "2010-04-20 10:07:52",
    "2010-04-20 10:08:22",
    "2010-04-20 10:08:22",
    "2010-04-20 10:09:46",
    "2010-04-20 10:10:37",
    "2010-04-20 10:10:58",
    "2010-04-20 10:11:50",
    "2010-04-20 10:12:13",
    "2010-04-20 10:12:13",
    "2010-04-20 10:25:38"
]
1
305
9/28/2015 5:05:25 PM

Accepted Answer

In one line, using a lambda:

timestamp.sort(key=lambda x: time.strptime(x, '%Y-%m-%d %H:%M:%S')[0:6], reverse=True)

Passing a function to list.sort:

def foo(x):
    return time.strptime(x, '%Y-%m-%d %H:%M:%S')[0:6]

timestamp.sort(key=foo, reverse=True)
353
1/11/2018 6:16:12 AM

This will give you a sorted version of the array.

sorted(timestamp, reverse=True)

If you want to sort in-place:

timestamp.sort(reverse=True)

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon