而不是做
for i in range(begin, end):
我想做点什么
for i in begin+1, begin+2, begin, begin+3 through end:
如果这有意义吗?
答案 0 :(得分:2)
for i in [begin+1, begin+2, begin] + range(begin+3, end):
答案 1 :(得分:0)
坦率地说,我认为这是itertools.chain
的工作。
from itertools import chain
def disorderedrange(begin, end):
return chain((begin+1, begin+2, begin, begin+3), range(begin+4, end))
for i in disorderedrange(1, 100):
# loop content goes here.
如果范围很大,这比gnibbler的解决方案更好(因为这样可以避免创建一个包含整个范围的临时列表。)。