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

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

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

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

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

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

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