defaultdict

Pythonには、collectionsというモジュールにとても便利なデータ構造のセットがあります。その中の一つが、デフォルト値を持つ辞書、defaultdictです。
defaultdictを作成するとき、欠けている要素に対してデフォルト値を返すラムダ関数を渡すことができます:
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
ここで、AnnaBobは辞書のキーに追加されていますが、999は存在しないため、プログラムはThis item does not existと出力します。
これは、値としてリストを扱う場合に特に有用です:
grades = defaultdict(lambda: [])
grades['Anna'].append(10)
grades['Anna'].append(9)
grades['Bob'].append(8)
grades['Bob'].append(9)

print(grades['Bob'])  # [8, 9]
print(grades[999])    # []

チャレンジ

サッカーチームとその対戦相手のn試合が与えられたとき、各チームが行った試合数を求めてください。
入力の最初の行には単一の整数nが含まれています - 試合の数です。次のn行には、対戦したチーム名がダッシュ(-)で区切られて含まれています。続く行には、プログラムが試合数を出力すべきクラブの名前がカンマ(,)で区切られて含まれています。
プログラムは、入力の最後の行で要求された各チームの試合数をスペースで区切って出力する必要があります。
入力
出力
3 Real Madrid-Barcelona Chelsea-Manchester United Arsenal-Barcelona Manchester United,Barcelona,Roma
1 2 0
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue