1
0

More than 3 years have passed since last update.

python3 辞書型

Last updated at Posted at 2021-09-06

辞書の基本

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 のそれぞれの要素を指すようになります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0