如何过滤iTertools链()结果?
-
13-09-2019 - |
题
在我的观点中,如果我导入一个Itertools模块:
from itertools import chain
我用它链接一些对象:
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))
然后,如何按“ date_added”订购“ ourtags”?
不摇摆不定,
ourtags = list(chain(franktags, amytags, timtags, erictags)).order_by('date_added')
返回“'列表'对象没有属性'order_by'”错误。
解决方案
import operator
ourtags = sorted(ourtags, key=operator.attrgetter('date_added'))
其他提示
到代码中的这一点,您已经将所有对象加载到内存中并列入列表。只需像任何旧的python列表一样对列表进行排序。
>>> import operator
>>> ourtags.sort(key=operator.attrgetter('date_added'))
不隶属于 StackOverflow