获取邻居元组的列表



使用zip执行操作的简单方法是什么:

Input: (1,2,3,4,5)
Output: ((1,2),(2,3),(3,4),(4,5))

编辑:是的,通用的ngram解决方案是相似的,但对于如此简单的任务来说太冗长了。请参阅下面的答案以了解原因。

zip带有自己的尾巴的元组:

>>> ł = (1,2,3,4,5)
>>> zip(ł, ł[1:])
[(1, 2), (2, 3), (3, 4), (4, 5)]

您可以使用列表推导式或生成器表达式初始化元组:

>>> x = (1, 2, 3 4, 5)
>>> tuple((x[i], x[i+1]) for i in range(len(x)-1))
((1, 2), (2, 3), (3, 4), (4, 5))

或使用切片:

>>> tuple(x[i:i+2] for i in range(len(x)-1))
((1, 2), (2, 3), (3, 4), (4, 5))
in = (1, 2, 3, 4, 5)
out = tuple([(in[i], in[i+1] for i in range(len(in) - 1)])
print(out)
>> ((1, 2), (2, 3), (3, 4), (4, 5))

另一种可能性

x = (1,2,3,4,5)
tuple([(a,b) for a,b in zip(x[:-1],x[1:])])

最新更新