Probleme mit for - Schleife---Punkte zueinander berechnen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
acidk
User
Beiträge: 75
Registriert: Samstag 6. Januar 2007, 18:54
Wohnort: Braunschweig

Hallo liebe Python Gemeinde!

Ich hänge gerade bei einem Schleifenproblem....

Ich habe zwei Listen a und b (unerschiedlicher Länge)[enspricht Ansammlung unterschiedlicher Punkte aus den Quellen a und b],

mit Unterlisten a la drei Einträgen [entspricht x/y/z Wert der Punkte].

Ich möchte die Distanz von jedem Punkt aus a zu jedem Punkt aus b berechnen. Wenn die Distanz <2 ist, will ich die entsprechen a Punkte an eine Neue Liste hängen.

Anfangs dachte ich auch, dass mein Code läuft - allerdings habe ich in der Endliste doppelte Punkte, (in den Ausgangslisten kommt jeder Punkt aber nur einmal vor). Insgesamt wurden jedoch a *b Distanzen berechnet - das passt schonmal.

mein exemplarischer code:

Code: Alles auswählen

hit_list = []

for i in a:
    for j in b:
        dist = (((b[0]-a[0])**2)+((b[1]-a[1])**2)+((b[2]-a[2])**2))
        
         if dist<2:
             hit_list.append(i)   
Was habe ich für einen Denkfehler gemacht, bzw. wie kann man dieses Problem schneller/ besser /eleganter lösen?

Vielen Dank!
BlackJack

Dein exemplarischer Code funktioniert so nicht. Wahrscheinlich meintest Du bei der Berechnung von `dist` `i` und `j` statt `a` und `b`. Wahrscheinlich fehlt auch noch einmal Wurzelziehen.

Ansonsten sieht das okay aus. Also stell bitte sicher, dass der Code, den Du hier zeigst, das Problem auch wirklich enthält. Sonst kann man schlecht helfen.
Antworten