我有一个字典列表如下:
list = [{a: 3, b: 2}, {a: 7, b: 9}, {a: 9, b: 11}]
我想计算列表中每个项目与其他每个项目之间的欧氏距离。
我无法找到如何实现这一目标。请建议我用pythonic方法计算它。
答案 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>