Seite 1 von 1

Ortungsprobleme

Verfasst: Freitag 31. Oktober 2008, 22:31
von __marcus__

Code: Alles auswählen

l = [243712976, 243712977, 246813146, 29631919, 60402695, 206346397, 60402696, 206348726, 206349292, 60402697, 282926866, 246819607, 206352382, 60402698, 60402699, 206342093, 287947684, 652833]
m = [243712976, 206348726, 206349292, 60402697, 282926866, 206352382, 60402699, 206342093, 652833]
n = 60402698
Meine Konstruktion zur Lösung dieses Problems schrie nach Expertenhilfe...

Ich möchte dasjenige Element aus m, das sich in l am nächsten links von n befindet. Also in diesem Fall: m[5] == 206352382. (m ist eine Teilmenge von l.)

Verfasst: Freitag 31. Oktober 2008, 22:42
von HWK
Vorschlag:

Code: Alles auswählen

for x in reversed(l[:l.index(n)]):
    if x in m:
        print x
        break
MfG
HWK

Verfasst: Freitag 31. Oktober 2008, 23:08
von __marcus__
HWK hat geschrieben:Vorschlag:

Code: Alles auswählen

for x in reversed(l[:l.index(n)]):
    if x in m:
        print x
        break
MfG
HWK
:oops: Danke.

Verfasst: Freitag 31. Oktober 2008, 23:31
von HWK
So wäre es noch etwas effektiver:

Code: Alles auswählen

for x in l[l.index(n)::-1]:
    if x in m:
        print x
        break
MfG
HWK

Verfasst: Freitag 31. Oktober 2008, 23:40
von BlackJack
Du meinst effizienter. Effektiv ist beides. :-)

Verfasst: Freitag 31. Oktober 2008, 23:55
von Qubit
HWK hat geschrieben:So wäre es noch etwas effektiver:

Code: Alles auswählen

for x in l[l.index(n)::-1]:
    if x in m:
        print x
        break
MfG
oder..

Code: Alles auswählen

l[l.index(n)-[x in m for x in l[l.index(n)::-1]].index(True)]