Pythonlijst sorteren in aflopende volgorde

Hoe kan ik deze lijst in aflopende volgorde sorteren?

timestamps = [
    "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"
]

Antwoord 1, autoriteit 100%

In één regel, met een lambda:

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

Een functie doorgeven aan list.sort:

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

Antwoord 2, autoriteit 94%

Dit geeft je een gesorteerde versie van de array.

sorted(timestamps, reverse=True)

Als u ter plaatse wilt sorteren:

timestamps.sort(reverse=True)

Antwoord 3, autoriteit 15%

Je kunt dit eenvoudig doen:

timestamps.sort(reverse=True)

Antwoord 4, autoriteit 2%

je typt simpel:

timestamps.sort()
timestamps=timestamps[::-1]

Antwoord 5, autoriteit 2%

Omdat je lijst al in oplopende volgorde staat, kunnen we de lijst gewoon omdraaien.

>>> timestamps.reverse()
>>> timestamps
['2010-04-20 10:25:38', 
'2010-04-20 10:12:13', 
'2010-04-20 10:12:13', 
'2010-04-20 10:11:50', 
'2010-04-20 10:10:58', 
'2010-04-20 10:10:37', 
'2010-04-20 10:09:46', 
'2010-04-20 10:08:22',
'2010-04-20 10:08:22', 
'2010-04-20 10:07:52', 
'2010-04-20 10:07:38', 
'2010-04-20 10:07:30']

Antwoord 6

Hier is een andere manier


timestamps.sort()
timestamps.reverse()
print(timestamps)

Other episodes