数组到元组的转换 python
Array to tuple conversion python
我有一个看起来像这样的数组
[1,2,3,4,5]
我想要一个如下所示的元组列表:
[(1,2),(2,3),(3,4),(4,5)]
在 python 中最方便的方法是什么?
谢谢!
这可以使用列表推导和列表切片来完成,您迭代直到 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)]
zip( a[:-1], a[1:] )
请参阅 help(zip)
或 zip
的网站 documentation。
由于 zip
将自己限制在较短的序列中,
zip(a, a[1:])
也有效。
编辑:
Steven 提出了一个有趣的观点,如果 a
很长,进行隐式复制以获得单独的 pyObject 即 a[1:]
是有问题的。在这种情况下,您可能希望使用 numpy
及其选项来查看具有偏移量的相同数据。
我有一个看起来像这样的数组
[1,2,3,4,5]
我想要一个如下所示的元组列表:
[(1,2),(2,3),(3,4),(4,5)]
在 python 中最方便的方法是什么?
谢谢!
这可以使用列表推导和列表切片来完成,您迭代直到 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)]
zip( a[:-1], a[1:] )
请参阅 help(zip)
或 zip
的网站 documentation。
由于 zip
将自己限制在较短的序列中,
zip(a, a[1:])
也有效。
编辑:
Steven 提出了一个有趣的观点,如果 a
很长,进行隐式复制以获得单独的 pyObject 即 a[1:]
是有问题的。在这种情况下,您可能希望使用 numpy
及其选项来查看具有偏移量的相同数据。