Seite 1 von 1

Probleme mit for - Schleife---Punkte zueinander berechnen

Verfasst: Dienstag 1. April 2008, 19:33
von acidk
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!

Verfasst: Dienstag 1. April 2008, 19:48
von 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.