Как найти минимальное расстояние?

Что то я не догоняю. задача вроде простая, а решить не знаю как. В distance у меня отображаются расстояние двух координат:

2.248068765999692
2.2899570806824774
2.2237959863222287
2.328693487106425
2.246462619648227
2.1829381142295774
2.3139805183568605
2.296054615263405
2.2951929773626785
2.2601234012984053
...
2.3173533679613776

данные берутся из словаря, а затем по формуле находится расстояние. Как мне найти минимальное расстояние? Фрагмент кода, который выполняет такие действия:

       #print(datasites)
        #10 Сравнить элементы из первого ключа с последующими в словаре и при совпадении выдать ключ и значения из словаря.
        #print(datasites[list(datasites.keys())[0]])
        for key, value in datasite.items():
            #print(key,value[0],value[1])
            for keys, values in  datasites.items():
                #print(keys,values) 
                if key != keys and values[0] != '':
                    #11 Найти ближайшего соседа базовой станции по формуле sqrt((x1-x2) * (x1-x2) + (y1-y2) * (y1-y2)):
                    #distance=sqrt((float(value[1])-float(values[1])) * (float(value[1])-float(values[1])) + (float(value[0])-float(values[0])) * (float(value[0])-float(values[0])))
                    distance=sqrt(pow(float(value[1])-float(values[1]),2) + pow(float(value[0])-float(values[0]),2))

                    #minim=1.0
                    #if distance<=minim:                        
                    #for i5 in distance:
                    #    print(i5)
                    #if minim < distance[0]:
                    #    print(minim)

                    #                y1         x1         y2          x2
                    print(key, keys, value[0], value[1], values[0], values[1], values[2], values[3], distance, minim)
                    with open("output.txt", "a") as outfile:
                        #outfile.write("FALSE " + key + " " + keys  + " " + value[0]  + " " + value[1]  + " " + values[0]  + " " + values[1]  + " " + values[2]  + " " + values[3] + " " + str(distance) + "\n")  
                        outfile.write(str(distance) + "\n")                  

там где код в комментарии, это я пытался найти минимальное расстояние. может какие то другие идеи есть? Вот весь вообще мой код:

        print("Добавьте файлы формата kml в папке где находится программа для дальнейшей обработки данных.")
        #3 Вывести всю информацию одной БС из файла kml:
        with open("Site_IR0008_1.kml","r", encoding="utf8") as rdbfile:
            file = rdbfile.read()
        #print(file)
        #4 В двух файлах название БС, координаты, LAC и BSC отображаются в одном атрибуте Placemark. Нужно вывести всю информацию внутри атрибута Placemark:
        Placemark = re.findall(r'<Placemark>(.*?)</Placemark>', file, re.DOTALL)
        for i in Placemark:
            #print(i)
            #5 Написать код, который выводит Имя БС в каждом фрагменте Placemark, выводит его в нужном формате и добавить в пустой список:
            listbs = re.findall(r'<name>(.*?)</name>', i, re.DOTALL)
            #print(listbs)
            for bs in listbs:
                if '/' in bs:
                    bs = bs.split('/')[0]
                    i1 = 2
                    i2 = 3
                    bs = bs[:i1] + bs[i2+1:]
                    listname.append(bs)
                    #print(bs)
                    #with open("output.txt", "a") as outfile:
                    #    outfile.write(bs + "\n")
                else:
                    #print("Имя базой станции другого формата!")
                    with open("output.txt", "a") as outfile:
                        outfile.write("Имя базой станции другого формата!\n")
            #6 Написать код, который выводит координаты в каждом фрагменте Placemark и выводит его в нужном формате и добавить в пустой список:
            listcoords = re.findall(r'<coordinates>(.*?)</coordinates>', i, re.DOTALL)
            #print(listcoords)
            for coords in listcoords:
                #print(coords)
                longitude = coords.split(',')[0]
                latitude = coords.split(',')[1]
                #print(longitude + " " + latitude + "\n")
                #with open("output.txt", "a") as outfile:
                #    outfile.write(longitude + " " + latitude + "\n")
                listxy.append(longitude)
                listxy.append(latitude)
        #print(listname)
        #print(listxy)
        #7
        #datasite["test1"]="test2"        
        datasite[listname[0]]=listxy
        #print(datasite)
        #8 Собрать данные для второго файла, в котором есть Bsc и Lac:
        with open("IR.kml","r", encoding="utf8") as rdbfile:
            file = rdbfile.read()
        #print(file)
        Placemark = re.findall(r'<Placemark>(.*?)</Placemark>', file, re.DOTALL)
        for i in Placemark:
            #print(i)
            #if '<longitude>' and 'LAC' in i:
            if ('<longitude>' in i) and ('LAC' in i) and ('BSC: ' in i):
                listbs = re.findall(r'<name>(.*?)</name>', i, re.DOTALL)
                #print(listbs)
                for bs in listbs:
                    if (len(bs)==6) == True:
                        #print(bs)
                        listallname.append(bs)
                        #with open("output.txt", "a") as outfile:
                        #    outfile.write(bs + "\n")                           
                    else:
                        #print("Имя базой станции другого формата!")
                        with open("output.txt", "a") as outfile:
                            outfile.write("Имя базой станции другого формата!\n")
                listcoords = re.findall(r'<longitude>(.*?)</latitude>', i, re.DOTALL)
                #print(listcoords)
                for coords in listcoords:
                    #print(coords)
                    coordinates = coords.split('</longitude>\n     <latitude>')
                    #print(coordinates)
                    longitude = coordinates[0]
                    latitude = coordinates[1]
                    #print(longitude + " " + latitude + "\n")
                    #with open("output.txt", "a") as outfile:
                    #    outfile.write(longitude + " " + latitude + "\n")
                    listall.append(longitude)
                    listall.append(latitude)
                listbsctac = re.findall(r'<description>BSC: (.*?)</description>', i, re.DOTALL)
                #print(listbsctac)
                for data in listbsctac:
                    #print(data)
                    datas = data.split(' LAC: ')
                    #print(datas)
                    bsc = datas[0]
                    lac = datas[1]
                    #print(bsc + " " + lac + "\n")
                    #with open("output.txt", "a") as outfile:
                    #    outfile.write(bsc + " " + lac + "\n")
                    listall.append(bsc)
                    listall.append(lac)
            else:
                #print("Координаты отсутсвуют!")
                #with open("output.txt", "a") as outfile:
                #    outfile.write("Координаты отсутсвуют!\n")
                break
        #9 Добавить в словарь данные загруженные из второго файла:
        #print(listallname)
        #print(listall)
        remainder = (len(listall)//len(listallname))
        #print(remainder)
        for numeration in range(len(listallname)):
            #print(numeration)
            datasites[listallname[numeration]] = [listall[y] for y in range(remainder*numeration,remainder*numeration+remainder)]
        #print(datasites)
        #10 Сравнить элементы из первого ключа с последующими в словаре и при совпадении выдать ключ и значения из словаря.
        #print(datasites[list(datasites.keys())[0]])
        for key, value in datasite.items():
            #print(key,value[0],value[1])
            for keys, values in  datasites.items():
                #print(keys,values) 
                if key != keys and values[0] != '':
                    #11 Найти ближайшего соседа базовой станции по формуле sqrt((x1-x2) * (x1-x2) + (y1-y2) * (y1-y2)):
                    #distance=sqrt((float(value[1])-float(values[1])) * (float(value[1])-float(values[1])) + (float(value[0])-float(values[0])) * (float(value[0])-float(values[0])))
                    distance=sqrt(pow(float(value[1])-float(values[1]),2) + pow(float(value[0])-float(values[0]),2))

                    #minim=1.0
                    #if distance<=minim:                        
                    #for i5 in distance:
                    #    print(i5)
                    #if minim < distance[0]:
                    #    print(minim)

                    #                y1         x1         y2          x2
                    print(key, keys, value[0], value[1], values[0], values[1], values[2], values[3], distance)
                    with open("output.txt", "a") as outfile:
                        #outfile.write("FALSE " + key + " " + keys  + " " + value[0]  + " " + value[1]  + " " + values[0]  + " " + values[1]  + " " + values[2]  + " " + values[3] + " " + str(distance) + "\n")  
                        outfile.write(str(distance) + "\n")                  
                elif values[0] == '':
                    #print("У БС", keys, "отсуствуют координаты!")
                    #with open("output.txt", "a") as outfile:
                    #    outfile.write("У БС " + keys + "отсуствуют координаты!\n")
                    continue
                else:
                    print("Уже есть данные LAC и BSC для базовой станции:", key)
                    with open("output.txt", "a") as outfile:
                        outfile.write("Уже есть данные LAC и BSC для базовой станции: " + key + "\n")

Ответы (0 шт):