1
我有一個簡單的二維列表,包含x,y對。我正在制定一個程序來查找兩組點之間的最短距離。索引和在二維列表上打印正確的值的麻煩python
列表'值'包含所有的距離,我敢肯定他們是正確的距離。
我想打印出創建最小距離的兩點。打印出最小距離顯然是非常容易的,但打印出這兩點卻給我帶來了麻煩。
我需要跟蹤哪些點正在創建哪些距離。
我認爲我可能不得不重新編寫這段代碼,並重新開始,以完成我想要的任務。但是,無論如何,我有什麼來實現這個結果?如果不是,我該怎麼做?我如何跟蹤正在使用的索引?
代碼:
multiD = [[1,3],
[-1,-1],
[1,1],
[2,0.5],
[2,-1],
[3,3],
[4,2],
[4,-0.5]]
def distance(x1, y1, x2, y2):
distance = ((((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1))) ** 0.5)
return distance
values = []
for [x1,y1] in multiD:
for [x2,y2] in multiD:
if [x1,y1] != [x2,y2]:
diff = distance(x1,y1,x2,y2)
values.append(diff)
這是很好做謝謝 –
如果你有時間,究竟是關鍵在做什麼?當它被拿出時,我們得到一組不同的對。它是否最接近地表明最小值必須來自距離函數?我不確定 –
它說「按距離判斷找到最小組對」。如果你刪除了'key = dist',你會得到「按照升序的數字順序來判斷最小的一組對數」,這將是'([-1,-1],[1,1])''。 –