就地排序子列表

时间:2014-01-27 12:41:12

标签: python list sorting view slice

有可能吗?显然x[1:-1].sort()不起作用,因为切片是副本。

目前的解决方法:

>>> x = [4, 3, 1, 2, 5]
>>> s = slice(1, -1)
>>> x[s] = sorted(x[s])
>>> x
[4, 1, 2, 3, 5]

我可以以某种方式在python列表上获得视图吗?

1 个答案:

答案 0 :(得分:5)

如果numpy是一个选项:

>>> x = np.array([1, 8, 90, 30, 5])
>>> x[2:].sort()
>>> x
array([ 1,  8,  5, 30, 90])

numpy数组slices始终是原始数组的视图。