Если есть список элементов словаря, например:
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, по-видимому, недоступно в функциях понимания списка.
Могу ли я делать то, что я хочу, через понимание списка?
Есть ли лучший способ сделать это?
Я ищу хороший баланс между удобочитаемостью и эффективностью, склоняясь к удобочитаемости.
Спасибо!
обновление:
спасибо всем за комментарии и идеи! мне проще всего читать Томаса. но я тоже посмотрю на предложение Алекса. я не нашел никаких ссылок на модуль коллекций.