如何在 Python 中进行循环循环?

青葱年少 python 201

原文标题How to do cycle loop in Python?

我在python列表中进行循环迭代时遇到问题,如果它达到列表的最大值,那么它将反转到列表的开头,它将从头开始再次迭代。例如我有[3,4,5]列表然后我想循环这6次。所以迭代将是

3, 4, 5, 4, 3, 4, 5...

那么如何做这个循环呢?

原文链接:https://stackoverflow.com//questions/71918730/how-to-do-cycle-loop-in-python

回复

我来回复
  • j1-lee的头像
    j1-lee 评论

    您可以使用itertools.cycle进行一些切片:

    from itertools import cycle, islice
    
    lst = [3,4,5]
    cycler = cycle(lst[:-1] + lst[:0:-1])
    print(list(islice(cycler, 10))) # [3, 4, 5, 4, 3, 4, 5, 4, 3, 4]
    
    2年前 0条评论
  • Samwise的头像
    Samwise 评论

    首先通过切片构造一个可循环的列表版本——向前和向后移动列表并删除每个列表的最后一个元素以防止它们重复:

    >>> nums = [3, 4, 5]
    >>> cycle = nums[:-1] + nums[:0:-1]
    

    然后使用%运算符迭代任意次数,同时将其保持在列表范围内:

    >>> for i in range(6):
    ...     print(cycle[i % len(cycle)])
    ...
    3
    4
    5
    4
    3
    4
    
    2年前 0条评论