Python ha un insieme molto utile di strutture dati in uno dei suoi moduli chiamato collections. Una di queste strutture dati è un dizionario con un valore predefinito: defaultdict.
Quando creiamo un defaultdict, possiamo passare una funzione lambda che restituirà un valore di default per gli elementi mancanti:
d = defaultdict(lambda: 'Questo elemento non esiste')
d['Anna'] = 10
d['Bob'] = 9
print(d['Bob']) # 9
print(d[999]) # Questo elemento non esiste
Qui Anna e Bob sono aggiunti come chiavi del dizionario, ma 999 non è presente, quindi il programma stampa Questo elemento non esiste.
Questo è particolarmente utile quando si lavora con liste come valori:
Date n partite tra squadre di calcio e i loro avversari, vi viene chiesto di determinare il numero di partite giocate da ogni squadra.
La prima riga dell'input contiene un singolo intero n - il numero di partite. Le successive n righe contengono i nomi delle squadre che hanno giocato tra loro, separati da un trattino (-). La riga seguente contiene i nomi dei club per i quali il programma dovrebbe stampare il numero di partite giocate, separati da virgole (,).
Il programma dovrebbe stampare i numeri di partite per ciascuna delle squadre richieste nell'ultima riga dell'input, separati da spazi.
Input
Output
3
Real Madrid-Barcelona
Chelsea-Manchester United
Arsenal-Barcelona
Manchester United,Barcelona,Roma