次のような辞書項目のリストがある場合:
L = [{"a":1, "b":0}, {"a":3, "b":1}...]
これらのエントリを「b」の値 (0 または 1) に基づいて分割したいと思います。
A(b=0) = [{"a":1, "b":1}, ....]
B(b=1) = [{"a":3, "b":2}, .....]
私は単純なリスト内包表記の使用に慣れており、現在、リスト L を 2 回ループしています。
A = [d for d in L if d["b"] == 0]
B = [d for d in L if d["b"] != 0]
明らかに、これは最も効率的な方法ではありません。
リスト内包表記機能では、else 句が使用できないようです。
リスト内包表記でやりたいことはできますか?
これを行うより良い方法はありますか?
読みやすさと効率のバランスを取り、読みやすさに傾倒しています。
ありがとう!
更新: コメントとアイデアをありがとう! 私にとって最も読みやすいのは、Thomas によるものです。しかし、アレックスの提案も見ていきます。コレクションモジュールへの参照は以前に見つかりませんでした。