获取邻居元组列表

时间:2016-07-15 15:20:51

标签: python list tuples

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

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

编辑:是的,一般的ngram解决方案类似,但对于这样一个简单的任务来说太冗长了。请参阅下面的答案以了解原因。

4 个答案:

答案 0 :(得分:7)

zip元组有自己的尾巴:

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

答案 1 :(得分:1)

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

>>> 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))

答案 2 :(得分:0)

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))

答案 3 :(得分:0)

另一种可能性

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