python reverse(list)和list.sort之间的区别(reverse = True)

Gla*_*ius 21 python sorting

有什么区别

mylist = reversed(sorted(mylist))
Run Code Online (Sandbox Code Playgroud)

VS

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

为什么一个用于另一个?

如何在多列上进行稳定排序,例如

mylist.sort(key=itemgetter(1))
mylist.sort(key=itemgetter(0))
mylist.reverse()
Run Code Online (Sandbox Code Playgroud)

这是一样的

mylist.sort(key=itemgetter(1), reverse=True)
mylist.sort(key=itemgetter(0), reverse=True)
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 20

你已经找到了完全不同的东西.由于Timsort是稳定的,因此在反向排序而不是排序排序将使未排序的元素保持相反的顺序.

>>> s = ((2, 3, 4), (1, 2, 3), (1, 2, 2))
>>> sorted(s, key=operator.itemgetter(0, 1), reverse=True)
[(2, 3, 4), (1, 2, 3), (1, 2, 2)]
>>> list(reversed(sorted(s, key=operator.itemgetter(0, 1))))
[(2, 3, 4), (1, 2, 2), (1, 2, 3)]
Run Code Online (Sandbox Code Playgroud)

  • 正确的。如果你无论如何对整个事情进行排序,那么他们会给出相同的结果。 (2认同)