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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

1053閲覧

Python 文字列を辞書へ変換したい

marty_85

総合スコア8

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/03/09 00:25

前提・実現したいこと

プログラミング初心者です。現在paizaのスキルチェックでPythonを勉強しています。
複数行の入力値を辞書に変換したいのですが、うまく出力されず困っています。

[入力値]
3
SET 1 10
SET 2 20
ADD 40

入力値の2行目以降の文字列を {'SET 1': '10', 'SET 2': '20', 'ADD': '40'} のように辞書に変換するようにコードを書き、上記の入力値はちゃんと出力されたのですが

[入力値]
3
SET 1 -23
SUB 77
SET 1 0

2つ目の入力値ではエラーメッセージは出ないのですが出力が {'SET 1': '0', 'SUB': '77'} だけになってしまい、 SET 1 -23 が抜けてしまいます。

分かりにくいかもしれませんが、宜しくお願い致します。

該当のソースコード

Python3

1 2input_line = int(input()) 3list1 = [] 4for i in range(input_line): 5 list1.append(input()) 6 7list2 = [] 8for i in range(input_line): 9 list2 += [list1[i].rsplit(" ", 1)] 10list3 = dict(list2) 11print(list3) 12

試したこと

マイナスの文字が原因なのか?SET 1のキーが重なって上書きされているのか?などと考えて色々ググってみたのですがよく分かりませんでした。

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

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

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

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

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

guest

回答2

0

ベストアンサー

辞書は同じキーを2つ以上持つことはできませんよ。

python

1In [1]: {'A': 1, 'A': 0} 2Out[1]: {'A': 0}

投稿2020/03/09 00:36

kirara0048

総合スコア1399

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

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

marty_85

2020/03/09 00:44

回答ありがとうございます。 なるほど、そうだったのですね。 助かりました。
guest

0

kirara0048さんとほぼ同じ回答ですが、
辞書は重複したキーを持てないので、
キー「SET 1」の値-23は、後に追加された同じキーの値0で上書きされてしまっています。

投稿2020/03/09 00:41

yureighost

総合スコア2183

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

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

marty_85

2020/03/09 00:47

回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問