列表项之间的欧几里德距离

时间:2015-11-08 06:26:20

标签: python list dictionary euclidean-distance

我有一个字典列表如下:

list = [{a: 3, b: 2}, {a: 7, b: 9}, {a: 9, b: 11}]

我想计算列表中每个项目与其他每个项目之间的欧氏距离。

我无法找到如何实现这一目标。请建议我用pythonic方法计算它。

3 个答案:

答案 0 :(得分:1)

一次选择两项

使用itertools

import itertools
for pointA, pointB in itertools.combinations(list, 2):
    distance(pointA,pointB)

其中距离是使用点获取距离的函数

答案 1 :(得分:1)

您可以使用others来执行此操作。一次从列表中选择2个项目。

itertools.combinations

如果要计算考虑元素的距离,请使用from itertools import combinations from math import sqrt for first,second in combinations(lst,2): print sqrt((first['a']-second['a'])**2 + (first['b']-second['b'])**2)

combinations_with_replacement

如果您更喜欢所有排列而非组合,请使用:

from itertools import combinations_with_replacement
for first,second in combinations_with_replacement(lst,2):
    #same_as_before

如果您想了解更多关于 itertools 的信息,请继续阅读 Here

答案 2 :(得分:0)

您可以这样做:

<dimen name="margin_button">23dp</dimen>