2024-09-27 17:45:27 发布
网友
我有一个坐标列表,比如:[(1,2,3),(2,3,4),(3,4,5),(4,5,6)]
[(1,2,3),(2,3,4),(3,4,5),(4,5,6)]
我想得到某个数,比如x1=1来自(1,2,3),y1=2来自(1,2,3),我不知道能不能做到。你知道吗
x1=1
(1,2,3)
y1=2
因为我想计算两个坐标之间的距离。你知道吗
用途:
math.sqrt(( x1-x2 )**2 + ( y1-y2 )**2 + (z1-z2 )**2)
谢谢你!你知道吗
我建议用字典来达到这个目的,你可以通过列表理解得到:
>>> [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)
可以使用索引来访问序列中的项。可以使用多个索引钻取多维数组。你知道吗
>>> 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]访问第一个坐标中的第二项。你知道吗
seq[0][0]
seq[0][1]
我建议用字典来达到这个目的,你可以通过列表理解得到:
然后使用以下命令代替
math.sqrt(( x1-x2 )**2 + ( y1-y2 )**2 + (z1-z2 )**2)
:可以使用索引来访问序列中的项。可以使用多个索引钻取多维数组。你知道吗
这里,
seq[0][0]
访问第一个坐标中的第一项,seq[0][1]
访问第一个坐标中的第二项。你知道吗相关问题 更多 >
编程相关推荐