Python 如何从一个列表中获取一个值并将其应用于另一个列表中的所有值

Python 如何从一个列表中获取一个值并将其应用于另一个列表中的所有值,python,list,loops,Python,List,Loops,由于某些原因,我无法找出代码不起作用的原因。 我想计算列表中的每一个值与所有其他值之间的距离。 比如说,我从列表中取下第一个索引rar[1]=(29276312) 我想知道它与自身的距离(即0)以及列表中的所有其他值 这就是为什么我想做一个循环,其中第一个点在第二个点的第二个循环完成动作之前不会改变。最后,我想得到一个列表,其中子列表包含每个值到另一个值的距离。像这样: 距离=[[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]] 其中0是点本身与点本

由于某些原因,我无法找出代码不起作用的原因。 我想计算列表中的每一个值与所有其他值之间的距离。 比如说,我从列表中取下第一个索引rar[1]=(29276312) 我想知道它与自身的距离(即0)以及列表中的所有其他值

这就是为什么我想做一个循环,其中第一个点在第二个点的第二个循环完成动作之前不会改变。最后,我想得到一个列表,其中子列表包含每个值到另一个值的距离。像这样:

距离=[[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]]

其中0是点本身与点本身之间的距离。 1是列表中第一个点和第一个值之间的距离 2是列表中第一个点和第二个值之间的距离

事先非常感谢你

rar= [(2925, 6597), (2927, 6312), (2934, 6545), (2938, 7412), (2941, 6456)]

templist=[]
distance=[]
for i in range(len(rar)) :
    firstpoint = rar[i]
    for q in range(len(rar):
       secpoint = rar[q]
       zipz = np.array(list(zip(firstpoint,secpoint)))
       nan = round(np.linalg.norm(zipz))
       templist.append(nan)
    distance.append(templist)

不太清楚如何计算两个元素之间的距离,但我假设差的范数应该可以。下面是一个小示例,介绍如何在使用列表表达式保持代码简单和最少的情况下执行此操作:

将numpy导入为np
rar=[(29256597)、(29276312)、(29346545)、(29387412)、(29416456)]
距离=[[rar中b的圆形(np.linalg.norm(np.array(a)-np.array(b))]
打印(距离)
输出:

[[0.0, 285.0, 53.0, 815.0, 142.0],
 [285.0, 0.0, 233.0, 1100.0, 145.0],
 [53.0, 233.0, 0.0, 867.0, 89.0],
 [815.0, 1100.0, 867.0, 0.0, 956.0],
 [142.0, 145.0, 89.0, 956.0, 0.0]]

“不工作”是什么意思?错误,或者输出是错误的?输出是错误的我太愚蠢了,我简直不敢相信我忘记了计算差值,谢谢你睁开我的眼睛,这真的很有帮助。很高兴我能帮上忙:)