Python列表降序排序

465 投票
7 回答
859233 浏览
提问于 2025-04-16 07:05

我该如何将这个列表按从大到小的顺序排列呢?

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"
]

7 个回答

66

你可以简单地这样做:

timestamps.sort(reverse=True)
572

这段代码会给你一个排好序的数组。

sorted(timestamps, reverse=True)

如果你想在原地排序,也就是不创建新的数组:

timestamps.sort(reverse=True)

可以查看文档,了解更多信息,地址是 Sorting HOW TO

427

用一行代码,使用一个叫做 lambda 的东西:

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

把一个函数传给 list.sort 方法:

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

timestamps.sort(key=foo, reverse=True)

撰写回答