5

Jinja2 で並べ替えフィルターを連続して適用して、最初に 1 つの属性でリストを並べ替え、次に別の属性で並べ替えることができますか? これは当然のことのように思えますが、私のテストでは、先行する並べ替えは完全に不安定で、すべての並べ替えが失われます。

リストをテンプレートに渡す前にPythonで最初にソートすることですでに回避しましたが、Jinja2で「安定」にソートできるかどうか知りたいです。

フィルターを適用する方法は次のようでした。

{{ item_list|sort(attribute='value')|sort(attribute='color') }}

私が見たいと思っていたのはcolor、色を共有する要素が でソートされた、 でソートされたリストでしたvaluevalue代わりに、並べ替えがまったく起こらなかったかのように見えました。

たとえば、次のリストから:

2 red
3 blue
3 red
2 blue
1 blue
4 red

私はこのようなものが欲しいです:

1 blue
2 blue
3 blue
2 red
3 red
4 red

groupbyフィルターを調べましたが、その実装は複雑すぎるようです (ネストされた for ループが必要になります)。

4

1 に答える 1