Ich habe eine übergeordnete Liste namens parent_list
, und zwei Teilmengen, über die ich die parent_list
filtern soll. Diese Subsets sind auch Python-Listen und heißen filter1
und filter2
.So entfernen Sie ein Element aus einer Liste, wenn es in einer oder zwei (oder N) anderen Listen
Kann ich tun:
final_list = [object for object in parent_list if object.pk not in filter1 or filter2]
Oder muss ich diese filteration separat tun, wie in:
intermediate_list = [object for object in parent_list if object.pk not in filter1]
final_list = [object for object in intermediate_list if object.pk not in filter2]
ich nicht explizit die Antwort aus der Dokumentation über python Listenkomprehensionen finden konnten, .
Zwei weitere Fragen: ** 1) ** muss ich das Set in eine Liste konvertieren (dh Liste (set (filter1 + filter2)), damit dies funktioniert ** 2) ** diese Art von etwas gewonnen ' t arbeiten mit ValuesQuerySet würde es? –
Erzwingen Sie, dass die QuerySets ihre Elemente durch Slicing auswerten: 'set (filter1 [:] + filter2 [:])'. Sie müssen das 'set' nicht in eine' list' konvertieren. –