Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用for循环迭代一个数字?_Python_Python 3.x_For Loop - Fatal编程技术网

Python 如何使用for循环迭代一个数字?

Python 如何使用for循环迭代一个数字?,python,python-3.x,for-loop,Python,Python 3.x,For Loop,我正在尝试创建一个使用for循环的程序。for循环中有两个数字。例如4和6。我希望for循环迭代4到6次,输出应如下所示: 1 2 3 4 1 2 有没有办法用Python3做类似的事情?这应该可以 iterator = 1 for i in range(6): if (iterator > 4): iterator = 1 print(iterator) iterator+=1 您可以使用创建一个迭代器,该迭代器在1..4范围内无限循环: i

我正在尝试创建一个使用for循环的程序。for循环中有两个数字。例如4和6。我希望for循环迭代4到6次,输出应如下所示:

1
2
3
4
1
2

有没有办法用Python3做类似的事情?

这应该可以

iterator = 1

for i in range(6):
    if (iterator > 4):
        iterator = 1
    print(iterator)
    iterator+=1
您可以使用创建一个迭代器,该迭代器在1..4范围内无限循环:

import itertools

for x in itertools.cycle(range(1, 5)):
    print(x)

# output: 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 ...
然后,您可以使用以下命令将此迭代器限制为6个数字:

这项工作:

for i in range (0,6):
    print( i % 4 + 1 )
结合使用和:


如果我理解正确的话,你想反复循环数字
1、2、3、4
,直到你总共循环了6个数字?@Aran Fey是的。到目前为止你做了什么?为什么要把这么简单的事情复杂化?这只是一个双重循环这是我想到的。如果你有更好的建议,欢迎你提交。你在这个答案上付出了太多的努力。@timgeb我看到了一个过度设计的机会,我抓住了它:^)特别感谢你让我记住,
itertools.islice
的存在……哦,我的天。我完全忘记了岛的事。请接受我的投票。我的答案是可怕的过度设计…这应该是公认的答案。简明扼要,绝对不是过度设计的Hanks@RonNabuurs,它是。。。几秒钟!
for i in range (0,6):
    print( i % 4 + 1 )
from itertools import islice, cycle
print(list(islice(cycle(range(1, 5)), 6)))
# [1, 2, 3, 4, 1, 2]