我正在寻找一种不使用lameda函数的反向lexicographical排序方法,在使用reversed
时发现了一些奇怪的现象:
>>> tuples = [
... (1, 2, 3),
... (2, 3, 1),
... (3, 1, 2),
... ]
>>> sorted(tuples, key=reversed)
[(3, 1, 2), (2, 3, 1), (1, 2, 3)] # wrong
>>> sorted(tuples, key=reversed)
[(2, 3, 1), (1, 2, 3), (3, 1, 2)] # also wrong
>>> sorted(tuples, key=reversed)
[(2, 3, 1), (3, 1, 2), (1, 2, 3)] # heyyy, third time lucky!
python如何对reversed
实例列表进行排序
它是按
reversed
对象的内存位置排序的:由于每次都会分配新的
reversed
对象,因此在后续的运行中结果可能会改变但是,它是CPython implementation detail,在语言引用中不能保证
相关问题 更多 >
编程相关推荐