python循环遍历列表中的n个连续项

我需要迭代列表中的n个连续元素.

例如:

data = [1,2,3,4,5,6,7]

我需要过去:

1 2
2 3
3 4
4 5

要么:

1 2 3
2 3 4
3 4 5
4 5 6

有拉链功能吗?

最佳答案 我不确定你到底在想什么,但试试这个:

data = [1, 2, 3, 4, 5, 6, 7]

n = 3

[data[i:i+n] for i in range(len(data) - n + 1)]

# [[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7]]

要么:

f = lambda data, n: [data[i:i+n] for i in range(len(data) - n + 1)]

for x, y, z in f([1, 2, 3, 4, 5, 6, 7], 3):
    print x, y, z
点赞