Wie das funktioniert:
sorted
sortiert ein Interable basierend auf dem Ergebnis von key(element)
für jedes Element (der Standardwert für key
ist None
, was dazu führt, dass die Sortierung direkt auf den Elementen basiert).
In unserem Fall gibt das Lambda lambda e: e not in B
entweder True
zurück, wenn e
nicht in B
ist, oder False
if e
ist in B
. Die Elemente mit False
werden nach vorne sortiert, und Sie erhalten Ihr Ergebnis. Wie demonstriert durch:
Viele dieser Antworten verwenden explizit die Set-Logik. Aber Python hat es eingebaut. Wenn, wie du sagst, die Reihenfolge keine Rolle spielt, solange die B
Teile zuerst kommen, wird dies den Rest erledigen:
Dies setzt voraus, dass (wie in Ihrem Beispiel) keine doppelten Werte vorhanden sind. Wenn dies der Fall ist, verwenden Sie eine der Listenverständnisantworten.
Hinweis: Dies entfernt doppelte Werte - funktioniert aber mit eindeutigen Schlüsseln.
Wenn beide bereits sortiert sind (oder anders angeordnet sind, wie Sie möchten), können Sie Folgendes verwenden:
%Vor% Ansonsten wenden Sie einfach sorted
auf A
, B
oder beide ...