O Python tem um conjunto muito útil de estruturas de dados em um dos seus módulos chamado collections. Uma dessas estruturas é um dicionário com um valor padrão — o defaultdict.
Ao criar um defaultdict, podemos passar uma função lambda que retorna um valor padrão para elementos inexistentes:
d = defaultdict(lambda: 'Este item não existe')
d['Anna'] = 10
d['Bob'] = 9
print(d['Bob']) # 9
print(d[999]) # Este item não existe
Aqui, Anna e Bob são adicionados como chaves no dicionário, mas 999 não está presente, portanto o programa imprime Este item não existe.
Isso é especialmente útil quando lidamos com listas como valores:
Dadas n partidas entre equipas de futebol e os seus adversários, pede-se que descubra o número de jogos que cada equipa disputou.
A primeira linha da entrada contém um único inteiro n — o número de partidas. As próximas n linhas contêm nomes de equipas separados por um hífen (-) que jogaram entre si. A linha seguinte contém os nomes dos clubes separados por vírgula (,) para os quais o programa deve imprimir o número de partidas jogadas.
O programa deve imprimir os números de partidas para cada uma das equipas solicitadas na última linha da entrada, separados por espaço.
Entrada
Saída
3
Real Madrid-Barcelona
Chelsea-Manchester United
Arsenal-Barcelona
Manchester United,Barcelona,Roma