数组到元组转换python

时间:2015-06-03 15:03:04

标签: python arrays tuples data-conversion

我有一个看起来像这样的数组

   [1,2,3,4,5]

我想要一个看起来像这样的元组列表:

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

在python中执行此操作最方便的方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:7)

zip( a[:-1], a[1:] )

请参阅help(zip)zip的网站documentation

由于zip将自己限制在较短的序列中,

zip(a, a[1:])

也有效。

编辑:

史蒂文提出了一个有趣的观点,即如果a非常长,那么执行隐式复制以获得a[1:]的单独pyObject是有问题的。在这种情况下,您可能希望使用numpy及其选项来获取具有偏移量的相同数据的视图。

答案 1 :(得分:3)

这可以使用列表推导和列表切片来完成,您将元素迭代到len(a) - 1,并在每个迭代切片上将元素形成current_index及其旁边的元素。

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

>>> [(1, 2), (2, 3), (3, 4), (4, 5)]