質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

337閲覧

pythonを使ったプログラミングの問題について教えてください。

zero1132

総合スコア4

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/23 07:13

編集2020/07/23 07:26

Python

1[解答] 2n = int(input()) 3 4a = {} 5 6for i in range(n): 7  x, y = input().split() 8 9 e = False 10 11 for k,v in a.items(): 12 if k == x: 13 e = True 14 15 if e: 16 a[x] = a[x] + int(y) 17 # 同じ時は、数をたす 18 else: 19 a[x] = int(y) 20 # 同じではなければ、足さない 21 print(a) 22 23[辞書を作りたい] 24n = int(input()) 25 26a = {} 27 28for i in range(n): 29 x, y = input().split() 30 31 a[x] = int(y) 32 33 print(a) 34```pythonを使ったプログラミングの問題について質問です。 35 36解答の方では 37入力が 382 39A 3 40S 4 41の時に出力が 42{'A':3,'S':4}になります。 43また、入力が 442 45A 2 46A 3 47の時に出力が 48{'A':5}になります。 49 50また、[辞書を作りたい]のコードの方は 512 52A 3 53S 4 54の時に出力が 55{'A':3,'S':4} 56 572 58A 2 59A 3 60の時に出力が 61{'A':2,'A',3}を実現したいと思って書いたのですが、反映されませんでした。 62 63質問 641.解答の方のコードでは、どこで辞書が作成されているのか教えてください。 652.辞書を作りたいの方では、どこを直したら入力した値が追加される、辞書のプログラムを作れるか教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/07/23 07:22

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
zero1132

2020/07/23 07:27

大変申し訳ございませんでした。詳しく教えて頂き無事コードを写すことができました。
guest

回答1

0

ベストアンサー

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]}

なお、質問する際は、コードをそのまま貼り付けると読みづらいので、<code>機能を使って下さい。

投稿2020/07/23 07:26

編集2020/07/23 07:28
jeanbiego

総合スコア3966

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zero1132

2020/07/23 07:38

1は理解できました。ありがとうございます。 2.辞書の仕様で同じkeyを入れることができないのは知りませんでした。 つまり、絶対に私が実現しようとしているプログラムは実行できないという解釈でよろしいでしょうか?
jeanbiego

2020/07/23 10:09

端的に言ってしまえばそういうことです。 やりたいことに対する違うアプローチを探されるのが良いかと。
zero1132

2020/07/23 14:14

そうなのですね。 解答して頂き、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問