Inline-for-Schleife

Ich versuche zu lernen ordentlich pythonic Möglichkeiten, Dinge zu tun, und wunderte sich, warum meine for-Schleife nicht umgestaltet werden, auf diese Weise:

q  = [1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5]
vm = [-1, -1, -1, -1]

for v in vm:
    if v in q:
        p.append(q.index(v))
    else:
        p.append(99999)

vm[p.index(max(p))] = i

Ich versucht, anstelle der for-Schleife mit:

[p.append(q.index(v)) if v in q else p.append(99999) for v in vm]

Aber es funktioniert nicht. Die for v in vm: Schleife evicts zahlen von vm basierend auf, wenn Sie Nächstes kommen in q.

  • Sie möchten möglicherweise verwenden Sie -1 statt 99999 für eine Kennzeichnende einen nicht existierenden Wert (so würde es für die Tätigkeit selbst eine Liste mit 99999+ Elemente)
  • Sie Liste comprehsnsion wird funktionieren, aber wird es wieder Listen von Keiner zu
  • Ich verwendet 99999 anstelle von -1, weil ich später lief max(p) und nicht vorhandenen Werten ausgewählt werden müssen.
InformationsquelleAutor Will | 2014-12-10
Schreibe einen Kommentar