Python tiene un conjunto muy útil de estructuras de datos en uno de sus módulos llamado collections. Una de esas estructuras de datos es un diccionario con un valor por defecto: defaultdict.
Al crear un defaultdict, podemos pasar una función lambda que devolverá un valor por defecto para los elementos que falten:
d = defaultdict(lambda: 'This item does not exist')
d['Anna'] = 10
d['Bob'] = 9
print(d['Bob']) # 9
print(d[999]) # This item does not exist
Aquí Anna y Bob se agregan como claves del diccionario, pero 999 no está presente, por lo que el programa imprime This item does not exist.
Esto es especialmente útil cuando se trabaja con listas como valores:
Dadas n partidas entre equipos de fútbol y sus oponentes, se te pide averiguar el número de partidos que cada equipo ha jugado.
La primera línea de la entrada contiene un solo entero n —el número de partidos—. Las siguientes n líneas contienen los nombres de los equipos que jugaron entre sí, separados por un guión (-). La línea siguiente contiene los nombres de los clubes para los cuales el programa debe imprimir el número de partidos jugados, separados por comas (,).
El programa debe imprimir los números de partidos para cada uno de los equipos solicitados en la última línea de la entrada, separados por espacios.
Entrada
Salida
3
Real Madrid-Barcelona
Chelsea-Manchester United
Arsenal-Barcelona
Manchester United,Barcelona,Roma