Ortungsprobleme

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.
__marcus__
User
Beiträge: 92
Registriert: Mittwoch 10. September 2008, 22:10
Wohnort: Hamburg

Ortungsprobleme

Beitragvon __marcus__ » Freitag 31. Oktober 2008, 22:31

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.)
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Freitag 31. Oktober 2008, 22:42

Vorschlag:

Code: Alles auswählen

for x in reversed(l[:l.index(n)]):
    if x in m:
        print x
        break
MfG
HWK
__marcus__
User
Beiträge: 92
Registriert: Mittwoch 10. September 2008, 22:10
Wohnort: Hamburg

Beitragvon __marcus__ » Freitag 31. Oktober 2008, 23:08

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.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Freitag 31. Oktober 2008, 23:31

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
BlackJack

Beitragvon BlackJack » Freitag 31. Oktober 2008, 23:40

Du meinst effizienter. Effektiv ist beides. :-)
Qubit
User
Beiträge: 75
Registriert: Dienstag 7. Oktober 2008, 09:07

Beitragvon Qubit » Freitag 31. Oktober 2008, 23:55

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)]

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Google [Bot]