如果有一个像这样的字典项目列表:
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 两次。
A = [d for d in L if d["b"] == 0]
B = [d for d in L if d["b"] != 0]
显然这不是最有效的方法。
列表理解功能中似乎没有 else 子句。
我可以通过列表理解做我想做的事吗?
有一个更好的方法吗?
我正在寻找可读性和效率之间的良好平衡,倾向于可读性。
谢谢!
更新:感谢大家的意见和想法!对我来说最容易阅读的是托马斯的一本书。但我也会看看亚历克斯的建议。我之前没有找到对集合模块的任何引用。