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'オブジェクトには属性「order_by」 "エラーがありません。
解決
import operator
ourtags = sorted(ourtags, key=operator.attrgetter('date_added'))
他のヒント
コードのこの時点までに、すべてのオブジェクトをメモリとリストに既にロードしています。古いPythonリストのようにリストを並べ替えてください。
>>> import operator
>>> ourtags.sort(key=operator.attrgetter('date_added'))
所属していません StackOverflow