我有几个简单的循环:
for i in range (30, 52):
#do some stuff here
for i in range (1, 18):
#do some more stuff
我想要的是使用顺序语法将其压缩成一个循环:
for i in range((30, 52), (1, 18):
#do some stuff
我意识到语法不起作用,但这是我需要的基本概念。我已经看到人们使用zip来同时迭代两个范围,但这不是我需要的。
有什么想法吗?
答案 0 :(得分:13)
来自https://docs.python.org/2/library/itertools.html#itertools.chain:
创建一个迭代器,返回第一个iterable中的元素,直到 它耗尽,然后进入下一个迭代,直到所有的 迭代用尽了。用于处理连续序列 单一序列。
示例:
import itertools as it
for i in it.chain(range(30, 52), range(1, 18)):
print(i)
答案 1 :(得分:2)
您可以将范围的两个迭代器转换为列表,然后将它们与加法符组合在一起:
for i in list(range(30, 52)) + list(range(1, 18)):
# something
答案 2 :(得分:-1)
for i in range(30, 52) + range(1, 18):
#something