def distance(alist, blist):
sum_of = 0
for x in alist:
for y in blist:
ans = (x - y)**2
sum_of += ans
return (sum_of)**(1/2)
print(distance([1, 1, 3], [2, 2, 3])) #1.4142135623730951
print(distance([1, 2, 3], [2, 2, 3])) #1.0
print(distance([2, 2, 3], [2, 2, 3])) #0.0
print(distance([1, 1], [2, 2])) #1.4142135623730951
Also habe ich eine Reihe von Testfällen, die mir zwei Listen mit Zahlen geben. Meine Aufgabe ist es, die euklidische Distanz mit den gegebenen Listen zu berechnen. Ich bekomme jedoch nicht die richtigen Ergebnisse. Ich bekomme stattdessen 3,7416573867739413, 3,0, 2,0 und 2,0. Das habe ich bisher und ich bin mir nicht sicher, was ich falsch mache.Berechnung der euklidischen Entfernung mit vorgegebenen Listen
Oh okay, ich verstehe. Wenn es Ihnen nichts ausmacht zu erklären, was genau macht "zip"? – Laser
zip (...) zip (seq1 [, seq2 [...]]) -> [(seq1 [0], seq2 [0] ...), (...)] Eine Liste zurückgeben von Tupeln, wobei jedes Tupel das i-te Element von jeder der Argumentsequenzen enthält. Die zurückgegebene Liste wird Länge auf die Länge der kürzesten Argumentsequenz abgeschnitten. – kvivek
@EliezerShahid Sie können immer herausfinden, was eine eingebaute oder Standard-Bibliotheksfunktion tut, indem Sie die Dokumentation lesen: ['zip()'] (https://docs.python.org/3/library/functions.html#zip). –