如何就地排序列表的一部分?

5 投票
1 回答
7884 浏览
提问于 2025-04-16 16:38

可能重复的问题:
Python:就地排序列表的一部分

我想实现一个决策树算法,而我的实现需要按属性逐个对表格进行排序,且要在原地进行。

简单来说,就是选择一个属性,然后根据这个属性进行排序。表格中所有具有相同属性的条目可以看作是另一个列表,因为在这些条目之间进行排列并不会改变这个属性。

那么,我该如何只对这个相关的子部分进行排序呢?我需要为列表写一个自己的包装器,指定基础和长度吗?

1 个回答

9

这算是某种就地排序。它确实需要一些临时的空间来存放已经排序好的部分。

>>> a=range(20,0,-1)
>>> a
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> a[10:15]=sorted(a[10:15])
>>> a
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 6, 7, 8, 9, 10, 5, 4, 3, 2, 1]
>>> 

撰写回答