假设我们有一个列表:
a = [4, 8, 1, 7, 3, 0, 5, 2, 6, 9]
现在,a.sort() 将就地对列表进行排序。如果我们只想排序怎么办a part列表中的内容,还在吗?在 C++ 中我们可以这样写:
int array = { 4, 8, 1, 7, 3, 0, 5, 2, 6, 9 }; int * ptr = array; std::sort( ptr + 1, ptr + 4 );
Python中有类似的方法吗?
我会这样写:
a[i:j] = sorted(a[i:j])
它也不是就地排序,但对于相对较小的段来说足够快。
请注意,Python 仅复制对象引用,因此与人们所期望的真正的就地排序相比,速度损失不会那么大。