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

如何在Python中实现跨多个区间的for循环?

如何在多个不同区间执行for循环?

我遇到一个基础问题,但找不到答案:能不能在多个不同区间内执行for循环?比如我试了下面的代码:

array = [1,2,3,4,5,6,7,8,9,10]
for i in range(0,5) and range(7,9):
    print(array[i])

期望输出是:1,2,3,4,5,8,9

简洁解决方案:使用itertools.chain

正如Adam.Er8指出,用itertools.chain是更简洁的解决方式。

无需导入库的方案

我自己试验出了不需要导入库的实现方式,虽然不够简洁,但能满足需求:

array = [1,2,3,4,5,6,7,8,9,10]
needrange = [[1,3],[5,7],[8,9]]
for j in range(0,len(needrange)):
    for i in range(needrange[j][0],needrange[j][1]):
        print(array[i])

参考相似问题的代码

感谢相似问题中cs95提供的代码:

from itertools import chain

ranges = [range(2, 5), range(3, 7), ...]
flat = list(chain.from_iterable(ranges))

备注

我认为cs95代码中的range(n,m)和我最初创建列表的思路非常相似;itertools中的函数逻辑相近,但我觉得自己的无库方案更易读。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:30:30