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')
" 'list'객체에 attribute 'order_by'"오류가 없습니다.
해결책
import operator
ourtags = sorted(ourtags, key=operator.attrgetter('date_added'))
다른 팁
코드 의이 시점에서 이미 모든 객체를 메모리와 목록에로드했습니다. 오래된 Python 목록처럼 목록을 정렬하십시오.
>>> import operator
>>> ourtags.sort(key=operator.attrgetter('date_added'))
제휴하지 않습니다 StackOverflow