-2

而不是做

for i in range(begin, end):

我想做类似的事情

for i in begin+1, begin+2, begin, begin+3 through end:

如果这有意义吗?

4

2 回答 2

2
for i in [begin+1, begin+2, begin] + range(begin+3, end):
于 2013-05-15T03:09:58.020 回答
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 的解决方案要好(因为这样可以避免创建一个包含整个范围的临时列表。)。

于 2013-05-15T03:59:07.827 回答