【问题标题】:How to iterate through a circular array multiple times in python?如何在python中多次遍历循环数组?
【发布时间】:2023-01-20 15:45:34
【问题描述】:

我想多次遍历数组。当我到达最后一个索引时,下一个索引应该是第一个。 例如,我有一个包含 6 个元素的数组

array1 = [1,2,3,4,5,6]

我有 K = 4。K 将是我将跳过的元素数。

在上面的示例中,我将从 array1[0] 开始并跳过 K 个元素,包括 array1[0] 元素。 所以如果我跳过 4 个元素,我将到达 array1[4]。如果我再次跳过 K 个元素,我应该跳过 array1[4]、array1[5]、array1[0] 和 array1[1] 并到达 array1[2]。这个过程会重复 N 次。

我尝试在线搜索解决方案,因为我想不出一种方法来绕圈移动数组。我找到了一个解决方案,说要像这样使用模运算符

print a[3 % len(a)] 

但我无法理解这一点,因为我刚开始使用 python。

【问题讨论】:

    标签: arrays python-3.x traversal


    【解决方案1】:

    了解什么是模数会有所帮助 https://en.wikipedia.org/wiki/Modulo

    总而言之,在本练习中,您不关心遍历数组的次数。你只关心“你在当前迭代的哪个位置”可以这么说。因此,使用数组长度作为模的模运算将为您提供此类除法的余数,这正是您要寻找的。

    例子:

    arr = [1,2,3,4,5]
    k = 27
    arrlength = len(arr) # 5
    reminder = k % arrlength # 27 % 5 = 2
    arr[reminder] # 3
    

    【讨论】:

      猜你喜欢
      • 2013-11-15
      • 2020-04-14
      • 2020-11-10
      • 2015-09-22
      • 2010-10-24
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      相关资源
      最近更新 更多