Skip to content
Advertisement

Calculating Euclidean Distance

I have the code below to calculate Euclidean Distance. however, my function does basically nothing. It gives no output and not even an error, it just runs and finishes.

lst_a=[1,2,3,4,5]
lst_b=[1,2,4,5,8]

def distance(lst_a, lst_b):
    sum_of = 0
    for x, y in zip(lst_a, lst_b):
        ans = (x - y)**2
        sum_of += ans
    return (sum_of)**(1/2)

Advertisement

Answer

Have you called the function?

distance(lst_a, lst_b)

Output:

3.3166247903554

For longer lists, you can also do this faster by summing a generator expression instead:

def distance(lst_a, lst_b):
    return sum((x-y)**2 for x, y in zip(lst_a, lst_b))**0.5

Or you could use math.dist (as pointed out in comments) which is significantly faster still:

import math
def distance(lst_a, lst_b):
    return math.dist(lst_a, lst_b)
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement