如何在不使用 numpy 或 zip 的情况下找到两个列表之间的欧几里得距离?
Posted
技术标签:
【中文标题】如何在不使用 numpy 或 zip 的情况下找到两个列表之间的欧几里得距离?【英文标题】:How do I find the euclidean distance between two lists without using numpy or zip? 【发布时间】:2021-12-20 22:23:10 【问题描述】:如何在不使用 numpy 或 zip 功能的情况下找到两个列表之间的欧式距离?此外,列表的长度相同,但列表的长度没有定义。
例如:
前 1.
list_1 = [0, 5, 6]
list_2 = [1, 6, 8]
ex2.
list_1 = [0, 1, 2, 3, 4]
list_2 = [5, 6, 7, 8, 9]
到目前为止我有:
def euclidean_distance(p1, p2):
sum = 0
#(I think I need a for loop, possibly nested? --> For x in... for y in...)
ans = (x-y) ** 2
sum += ans
return (sum) ** (1/2)
【问题讨论】:
sum
是Python内置的,尽量不要用它作为变量名。
【参考方案1】:
我认为你可以像这样简化你的 euclidean_distance()
函数:
def euclidean_distance(p1, p2):
return abs(p1- p2)
一种解决方案是在函数外部循环遍历列表:
for i in range(len(list_1)):
print(euclidean_distance(list_1[i], list_2[i]))
另一种解决方案是使用 map() 函数:
for result in map(euclidean_distance, list_1, list_2):
print(result)
对于
list_1 = [0, 5, 6]
list_2 = [1, 6, 8]
这会给你输出:
1
1
2
【讨论】:
以上是关于如何在不使用 numpy 或 zip 的情况下找到两个列表之间的欧几里得距离?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 numpy 的情况下计算 python 中的标准偏差?
如何在不使用 numpy 的情况下将 2D 列表展平为 1D? [复制]
如何在不使用 Ruby 保存到磁盘的情况下生成 zip 文件?