Python从lis得到一定的坐标

2024-06-17 08:31:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想得到某个数,比如x1=1来自(1,2,3)y1=2来自(1,2,3),我不知道能不能做到。你知道吗

因为我想计算两个坐标之间的距离。你知道吗

用途:

math.sqrt(( x1-x2 )**2 + ( y1-y2 )**2 + (z1-z2 )**2)

谢谢你!你知道吗


Tags: 距离列表mathsqrt用途x1x2y1
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]访问第一个坐标中的第二项。你知道吗

相关问题 更多 >