以四个元素但以连续方式循环遍历数组

时间:2019-01-11 18:30:04

标签: python loops for-loop iteration

我使用以下代码遍历数组。

arr = [1 ,2 ,3 ,4 ,5 , 6,7]
    for a, b, c in zip(*[iter(arr)]*3):
        print (a, b, c)

它检索输出分为(1,2,3)和(4,5,6)两部分

但是我希望输出在(1,2,3),(2,3,4),(3,4,5),(4,5,6),(5,6)的意义上是连续的,7),而且速度更快。 除了迭代之外,还有其他方法可以实现这一目标吗?

3 个答案:

答案 0 :(得分:4)

只需使用切片:

search(phrase: String!): [SearchResult!]

如果使用itertools.islice

会更好。
interface

答案 1 :(得分:3)

您还可以循环搜索大小为n的切片

n = 3
for a, b, c in [arr[i:i+n] for i in range(len(arr)-(n-1))]:
    print(a, b, c)
#1 2 3
#2 3 4
#3 4 5
#4 5 6
#5 6 7

答案 2 :(得分:2)

from toolz.itertoolz import sliding_window
arr = [1 ,2 ,3 ,4 ,5 , 6,7]
list(sliding_window(3,arr))

输出

[(1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7)]