我有一个坐标列表,例如:[(1,2,3),(2,3,4),(3,4,5),(4,5,6)]
我希望获得一定数量,例如来自x1=1
的{{1}},来自(1,2,3)
的{{1}},我不知道是否可以完成。
因为我想计算某两个坐标之间的距离。
使用:
y1=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)