Python从列表中获取某些坐标

时间:2014-10-29 13:13:18

标签: python python-2.7

我有一个坐标列表,例如:[(1,2,3),(2,3,4),(3,4,5),(4,5,6)]

我希望获得一定数量,例如来自x1=1的{​​{1}},来自(1,2,3)的{​​{1}},我不知道是否可以完成。

因为我想计算某两个坐标之间的距离。

使用:

y1=2

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用索引来访问序列中的项目。可以使用多个索引钻取到多维数组中。

>>> seq = [(1,2,3),(2,3,4),(3,4,5),(4,5,6)]
>>> seq[0][0]
1
>>> seq[0][1]
2

此处,seq[0][0]访问第一个坐标中的第一个项目,seq[0][1]访问第一个坐标中的第二个项目。

答案 1 :(得分:1)

我建议使用字典来实现这个目标,你可以通过列表理解来获得它:

>>> [dict((('x%d'%index,x),('y%d'%index,y),('z%d'%index,z))) for index, (x, y, z) in enumerate(l,1)]
[{'y1': 2, 'x1': 1, 'z1': 3}, {'x2': 2, 'y2': 3, 'z2': 4}, {'x3': 3, 'y3': 4, 'z3': 5}, {'z4': 6, 'y4': 5, 'x4': 4}]

然后代替math.sqrt(( x1-x2 )**2 + ( y1-y2 )**2 + (z1-z2 )**2)使用:

math.sqrt((new_dic['x1']-new_dic['x2'] )**2 + ( new_dic['y1']-new_dic['y2'] )**2 + (new_dic['z1']-new_dic['z1'] )**2)