質問: int(y) print(a) ``` pythonを使ったプログラミングの問題について質問です。 解答の方では 入力が 2 A 3 S 4 の時に出力が {'A':3,'S':4}になります。 また、入力が 2 A 2 A 3 の時に出力が {'A':5}になります。 また、[辞書を作りたい]のコードの方は 2 A 3 S 4 の時に出力が {'A':3,'S':4} 2 A 2 A 3 の時に出力が {'A':2,'A',3}を実現したいと思って書いたのですが、反映されませんでした。 質問 1.解答の方のコードでは、どこで辞書が作成されているのか教えてください。 2.辞書を作りたいの方では、どこを直したら入力した値が追加される、辞書のプログラムを作れるか教えてください。
回答: > > 1.解答の方のコードでは、どこで辞書が作成されているのか教えてください。 > > > a = {} 辞書の作成自体はここです。 / for k,v in a.items(): / if k == x: / e = True さらに、上記で、xがk(辞書のkey)に含まれていなければeはFalseのままです。 eがFalseならば下記でelse節が実行されて、辞書aにx: int(y)が追加されます。 / if e: / a[x] = a[x] + int(y) / # 同じ時は、数をたす / else: / a[x] = int(y) / # 同じではなければ、足さない > > 2.辞書を作りたいの方では、どこを直したら入力した値が追加される、辞書のプログラムを作れるか教えてください。 > > > pythonの辞書の仕様では、同じkeyを複数もつ辞書{'A':2,'A',3}は作れません。 できるのは以下のような手法です。 keyを書き換える{'A1':2,'A2',3} keyの値をリストなどにして複数の値をもたせる{'A':[2,3]} なお、質問する際は、コードをそのまま貼り付けると読みづらいので、機能を使って下さい。