Com que frequência você agrupou algo assim:
things_by_type = {}
for thing in things:
if thing.type not in things_by_type:
things_by_type[thing.type] = list()
things_by_type[thing.type].append(thing)
Felizmente, há uma maneira muito melhor de fazer isso dict.setdefault
. Veja isso:
things_by_type = {}
for t in things:
things_by_type.setdefault(thing.t, list()).append(t)
O truque aqui é que setdefault
só define o item se ele não
existir. Se existir, ele simplesmente retorna o item.
Retornar o item não é muito útil quando você está definindo um tipo primitivo como int
ou, str
mas quando você está lidando com recipientes mutáveis como list
ou set
para a lista, você pode acorrentar imediatamente o .append
ou .add
a eles.