Довольно легко создать свой собственный подкласс словаря. Одним из преимуществ, помимо необходимости import
всего, что имеет по сравнению с defaultdict(list)
, является то, что он печатается как обычный словарь.
class Vividict(dict):
def __missing__(self, key):
value = self[key] = list()
return value
vividict = Vividict()
with open('fruits.txt') as file:
for line in file:
name, kind = line.replace(':', ' ').split()
vividict[kind].append(name)
from pprint import pprint
pprint(vividict, width=40)
Вывод:
{'fruit': ['apple', 'banana'],
'vegetable': ['carrot', 'lettuce']}