Wie filtere ich ein Itertools Chain () Ergebnis?
-
13-09-2019 - |
Frage
In meinen Ansichten, wenn ich ein iTertools -Modul importiere:
from itertools import chain
Und ich kette einige Objekte damit:
franktags = Frank.objects.order_by('date_added').reverse().filter(topic__exact='art')
amytags = Amy.objects.order_by('date_added').reverse().filter(topic__exact='art')
timtags = Tim.objects.order_by('date_added').reverse().filter(topic__exact='art')
erictags = Eric.objects.order_by('date_added').reverse().filter(topic__exact='art')
ourtags = list(chain(franktags, amytags, timtags, erictags))
Wie bestelle ich dann "OurTags" nach "Date_Added"?
nicht überraschend,
ourtags = list(chain(franktags, amytags, timtags, erictags)).order_by('date_added')
Gibt ein "" List "-Objekt zurück.
Lösung
import operator
ourtags = sorted(ourtags, key=operator.attrgetter('date_added'))
Andere Tipps
Zu diesem Zeitpunkt im Code haben Sie bereits alle Objekte in den Speicher und in eine Liste geladen. Sortieren Sie einfach die Liste wie Sie jede alte Python -Liste.
>>> import operator
>>> ourtags.sort(key=operator.attrgetter('date_added'))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow