You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何不使用循环、不占额外空间反转List指定范围的元素?

列表指定区间反转的实现方法

Python 实现

你可以直接用切片赋值结合内置反转逻辑实现,完全满足无手动循环、原地修改的要求:

  • 示例代码:
lst = [1,2,3,4,5,6,7,8,9]
# 反转下标2到5的区间,Python切片为左闭右开规则,因此结束下标填6
lst[2:6] = lst[2:6][::-1]
print(lst) # 输出 [1,2,6,5,4,3,7,8,9]
  • 说明:
    • 不需要手动编写循环逐位交换元素,反转逻辑由Python内置实现,和直接调用reverse()方法的底层逻辑同源
    • 切片赋值为原地修改操作,不会生成和原列表大小相同的额外副本,仅会产生极小的临时变量开销,符合空间要求

Java 实现

如果你使用Java,可以借助Collections.reverse配合subList方法实现:

  • 示例代码:
import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<Integer> lst = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9));
        // subList为左闭右开规则,传入2和6对应下标2到5的区间
        Collections.reverse(lst.subList(2,6));
        System.out.println(lst); // 输出 [1,2,6,5,4,3,7,8,9]
    }
}
  • 说明:
    • subList返回的是原列表的视图,不会创建新的完整列表对象
    • 反转操作直接作用于原列表,全程不需要手动写循环交换逻辑,额外空间开销为O(1)

内容的提问来源于stack exchange,提问作者Pallab Tewary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 12:45:02