相邻/连接元素阵列

时间:2014-05-02 16:01:19

标签: python list

我想在数组中找到连接(相邻)元素。

例如,在数组中:

[1,2,3,4,5]

要访问所有2个连接的元素,输出将是:

1,2
2,3
3,4
4,5

要访问所有3个连接的元素,输出将是

1,2,3
2,3,4
3,4,5

因此,作为输入,我有一个数组和一个n个相邻元素的值,并且需要生成所有的情况

使用基本for循环:

for x in xrange(n): 

我可以得到数组索引的所有值,但我不确定如何获取下一个元素(使用while循环遇到问题,因为最后一个索引不会有任何相邻元素)

(我在想什么)

array = [1,2,3,4,5]
answer = []
for x in xrange(n):
    while len(answer) < adjacent_value:
        answer.append(array[x])
        x+=1

1 个答案:

答案 0 :(得分:3)

def grouper(input_list, n):
    return [input_list[i:i + n] for i in range(len(input_list) + 1 - n)]

print grouper([1, 2, 3, 4, 5], 3)
# [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
print grouper([1, 2, 3, 4, 5], 2)
# [[1, 2], [2, 3], [3, 4], [4, 5]]