Python Programmieren len()?
Hi, ich lerne gerade das Programmieren und habe mir einen rechner zum rechnen von Euklidischer Distanz auf einer 2D map programmiert. Der Quellcode sieht wie folgt aus:
def euclidean_distance(pt1, pt2):
distance = 0
for i in range(len(pt1)):
distance += (pt1[i] - pt2[i]) ** 2
return distance ** 0.5
print(euclidean_distance([1, 2], [4, 0]))
print(euclidean_distance([5, 4, 3], [1, 7, 9]))
nun meine Frage.
bei for i in range(len(pt1)) kommt doch 1 raus oder? Da es ja zaehlt wie viele Zahlen in pt1 drin sind naemlich 2 und im Python Index waehren das doch 1. Nun wenn ich jetzt len(pt1) mit 1 ersetze kommen falsche Ergebnisse raus wie kann das sein?
2 Antworten
len([0,1,2])
Ergibt 3
Der Index fängt natürlich bei 0 an, aber bei der Länge ist das logischerweise anders.
Nach deiner Theorie wäre eine leere Liste "-1" lang.
Aber eine leere Liste hat die Länge 0.
Ist ein Objekt drin, ist die Länge 1, usw
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Python
Len gibt dir nicht den max Index, sondern die reale Länge zurück