简化python代码-对几个列表进行切片并转换为元组

bksxznpy  于 2022-11-28  发布在  Python
关注(0)|答案(2)|浏览(89)

我想知道如何简化下面的python代码,我试着循环它,但是没有成功,我想一定有一种方法可以避免一遍又一遍地重复同样的事情。

coordinates = [
    (9, 2, 17),
    (4, 14, 11),
    (8, 10, 6),
    (2, 7, 0)
]

cdns = coordinates[0][0:2], coordinates[1][0:2], coordinates[2][0:2], coordinates[3][0:2]
newCnds = tuple(cdns)
newCnds
wwodge7n

wwodge7n1#

您可以使用numpy

>>> import numpy as np
>>> coordinates = [
...     (9, 2, 17),
...     (4, 14, 11),
...     (8, 10, 6),
...     (2, 7, 0)
... ]
>>> coordinates_np = np.array(coordinates)
>>> coordinates_np[:, 0:2]
array([[ 9,  2],
       [ 4, 14],
       [ 8, 10],
       [ 2,  7]])

一般而言,特别是对于矢量化计算,numpy是最佳选择,无论是在简单性还是速度方面。

dxxyhpgq

dxxyhpgq2#

使用列表解析

coordinates = [
    (9, 2, 17),
    (4, 14, 11),
    (8, 10, 6),
    (2, 7, 0)
]
newCnds = [i[:2] for i in coordinates]

相关问题