##辞書の基本
n = int(input())
zaisan = {}
for i in range(n):
[s,a] = input().split()
zaisan[s]= a
S = input()
print(zaisan[S])
print(zaisan)
・zaisan = {} とすることで辞書を初期化して 変数 zaisan に代入できます。
・zaisan に s に対応する値 a を追加するには zaisan[s] = a とします。(重要)
・zaisan における S に対応する値にアクセスするには zaisan[S] とします。
入力例1
2
Kirishima 1
Kyoko 2
Kirishima
出力例1
1
n = int(input())
dmg = {}
for i in range(n):
s=input()
dmg[s]=0
#kirishima:0,kyoko:0を作る
m = int(input())
for i in range(m):
[p,a] = input().split()
a = int(a)
dmg[p] += a
#kyoko:2,kyoko:1と上書きされる
S = input()
print(dmg[S])
print(dmg)
気づきとしては、dmg[]というのは、
dmgに登録されている[Aさん]Aさんを参照していることになる。
名前が同じであれば上書きすることもできる。
#辞書データの順序
n = int(input())
dmg = {}
for i in range(n):
s = input()
dmg[s] = 0
m = int(input())
for i in range(m):
[p, a] = input().split()
a = int(a)
dmg[p] += a
names = list(dmg.keys())
names.sort()
for name in names:
print(dmg[name])
・keys は辞書のメソッドで、辞書のキー(今回だと人名)を取り出します。dmg.keys() はこれだけだとリストになっていないので、list関数 でリストに変換すると、dmg のキーになっている人名のリスト names を作ることができます。
・あとは names をソートして、names の要素をキーとする dmg の値を順に出力すれば OK です。
【重要】
・Python のfor文はリストなどの要素を直接ループ用の変数に代入することができます。したがって、for i in range(n): とした後に names[i] のようにして人名にアクセスせずとも、for name in names: で name が names のそれぞれの要素を指すようになります。