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
ここで、
Anna
とBob
は辞書のキーに追加されていますが、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