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

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

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

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

Q&A

解決済

1回答

330閲覧

Pythonのリスト内の辞書方について

limitman80

総合スコア40

Python

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

0グッド

0クリップ

投稿2018/01/23 04:44

###前提・実現したいこと
下記のリストをマージさせ、List1に追加したいと思ってます。

for文で回せばできるのでしょうが、python独自のやり方で簡単に出来る方法がないか
探しているのですが、見つけることができません。
誰か教えてもらえないでしょうか?

###該当のソースコード
List1 = [
{'id':1 'Question':'名前は?'},
{'id':2 'Question':'年は?'},
{'id':3 'Question':'住所は?'},
]

List2 = [
{'id':2 'Answer':'A田A雄'},
]

※マージ後
List1=[
{'id':1 'Question':'名前は?' 'Answered':0},
{'id':2 'Question':'年は?' 'Answered':1},
{'id':3 'Question':'住所は?' 'Answered':0},
]

###試したこと
for文でまわして実現しています。

###補足情報(言語/FW/ツール等のバージョンなど)
Python3

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

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

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

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

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

Zuishin

2018/01/23 04:50

A田A雄どこ行きました? まずマージという言葉の意味が普通の意味と違っていたら通じないので、それを平易な言葉で言い直してください(「合成」のような一単語じゃなくて何をどうするのかという説明です)。それと for 文で回すソースも追記すれば何がしたいのかわかりやすくなります。
LouiS0616

2018/01/23 05:01

質問リストの構造を変えてしまってもいいのなら非常に簡単なのですが、そのような変更をしても良いのでしょうか。
limitman80

2018/01/23 05:17

A田A雄は必要ありません。マージという言い方は適切ではないですね。申し訳ありません。最終的には回答済みかどうかをList1に追加したいです。
limitman80

2018/01/23 05:18

質問リストの構造を変えるとはどのようなことでしょうか?
Zuishin

2018/01/23 05:23

未回答なら 0 で何人答えても 1 ということですか? ソース見せるのが早いと思います。
limitman80

2018/01/23 05:38

1人しか回答しない前提です。
Zuishin

2018/01/23 05:59

ああ、わかりました。for で回すソースがあるというのはうそですね。なぜならこのデータにエラーがあります。
limitman80

2018/01/23 07:58

ソースがあるのではなく、for文でやろうとしてますって状態です。
Zuishin

2018/01/23 08:06

では言葉を覚えてください。「実現しています」は「できました」と同じ意味です。使っている言葉が違うと話が通じません。この場合は「for 文でまわして実現しようとしましたが、できませんでした」です。難しいことをするよりも先に for 文をマスターした方が応用範囲が広いですよ。
limitman80

2018/01/23 08:10

そうですね。質問を書き込むほどのレベルではなかったです。申し訳ありませんでした。
Zuishin

2018/01/23 08:14

質問をすることが悪いなど誰も言っていません。丸投げの質問をごまかすテクニックを磨く暇があったらコードを書くテクニックを磨いてほしいだけです。ループはすべての基本です。
limitman80

2018/01/23 08:20

言葉を覚えてくださいとあるので書き込むレベルではないと判断しました。もちろんコードを学んでいくつもりです。ごまかすつもりもなく、時間もなく焦って書き込んだ結果がこの状況です。何度も言いますがご迷惑をおかけしました。
guest

回答1

0

ベストアンサー

個人的には一番素直に思える方法です。

Python

1from pprint import pprint 2 3quiz_dict = { 4 1: {'Question': '名前は?'}, 5 2: {'Question': '年は?'}, 6 3: {'Question': '住所は?'}, 7} 8 9update_dict = { 10 2: {'Answer':'A田A雄'}, 11} 12 13for key, value in update_dict.items(): 14 quiz_dict[key].update(value) 15 16pprint(quiz_dict) 17 18"""出力 19{1: {'Question': '名前は?'}, 20 2: {'Answer': 'A田A雄', 'Question': '年は?'}, 21 3: {'Question': '住所は?'}} 22"""

回答済みかどうか判断するのも簡単です。

Python

1def is_already_answered(dict_arg): 2 return 'Answer' in dict_arg 3 4for key, value in quiz_dict.items(): 5 print('{0}: {1}'.format(key, is_already_answered(value))) 6 7"""出力 81: False 92: True 103: False 11"""

投稿2018/01/23 05:35

編集2018/01/23 05:39
LouiS0616

総合スコア35660

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

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

limitman80

2018/01/23 05:39

Answerがあるかどうかを見ればやりたかったことと同じことになりますね。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問