如何在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
相关产品推荐
相关产品推荐

