Python列表按降序排序

Raj*_*eev 308 python sorting reverse

如何按降序对此列表进行排序?

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"
]
Run Code Online (Sandbox Code Playgroud)

Mar*_*tos 361

这将为您提供数组的排序版本.

sorted(timestamp, reverse=True)
Run Code Online (Sandbox Code Playgroud)

如果要进行就地排序:

timestamp.sort(reverse=True)
Run Code Online (Sandbox Code Playgroud)

  • @Rajeev - 不要忘记你只有在以这种方式编写日期时才能对日期进行排序(YYYY-MM-DD HH:MM:SS),其中按字母顺序排列,就像按时间顺序排列.'DD.MM.YYYY'将是一个很好的例子,你需要的不仅仅是`sort(reverse = True)`. (3认同)
  • 在2.4中添加了`reverse`.但请注意`sort()`是稳定的,因此给出的两位代码不一定会给出相同的结果. (2认同)

Ign*_*ams 360

在一行中,使用lambda:

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

将函数传递给list.sort:

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

timestamp.sort(key=foo, reverse=True)
Run Code Online (Sandbox Code Playgroud)

  • @ IgnacioVazquez-Abrams不,不是巧合.ISO 8601的设计明确,字母顺序与时间顺序一致. (15认同)
  • 转换为时间元组是不必要的. (13认同)
  • @Marcelo:只是巧合. (2认同)
  • @jwg日期和时间组件之间有一个空格. (2认同)

Wol*_*lph 52

你可以这样做:

timestamp.sort(reverse=True)
Run Code Online (Sandbox Code Playgroud)


Rus*_*ias 8

由于您的列表已经按升序排列,我们可以简单地反转列表.

>>> timestamp.reverse()
>>> timestamp
['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']
Run Code Online (Sandbox Code Playgroud)


小智 5

您简单的输入:

timestamp.sort()
timestamp=timestamp[::-1]
Run Code Online (Sandbox Code Playgroud)

  • 这是一个奇怪的答案,因为您在原地进行排序,但随后在异地进行反转。如果有另一个变量为原始列表别名,则其值之后的元素将不会按原始顺序排列,也不会按降序排列;别名将指向按*升序*顺序排序的列表。这可能相当令人惊讶,并且是微妙错误的来源。 (3认同)

ham*_*dan 5

这是另一种方法


timestamps.sort()
timestamps.reverse()
print(timestamps)
Run Code Online (Sandbox Code Playgroud)