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

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

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

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

Q&A

解決済

2回答

669閲覧

辞書の中に辞書を作る方法について

dd_

総合スコア111

Python

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

0グッド

0クリップ

投稿2021/08/13 16:09

編集2021/08/13 16:10

python

1keys = ["英語", "ひらがな"] 2list1 = ["a", "b", "c"] 3list2 = ["あ", "い", "う"] 4

のリストから

{"a" : {"英語": "a", "ひらがな": "あ"}, "b" : {"英語": "b", "ひらがな": "い"}, "c" : {"英語": "c", "ひらがな": "う"}}

このような実行結果にしたいと思い

二つのリストから辞書の作成についてググり
こういったコードで試していましたが

python

1keys = ["英語", "ひらがな"] 2list1 = ["a", "b", "c"] 3list2 = ["あ", "い", "う"] 4 5dic = {v1 : {k : v1, k : v2} for k,v1,v2 in zip(keys, list1, list2)} 6 7print(dic)
#実行結果 {'a': {'英語': 'あ'}, 'b': {'ひらがな': 'い'}}

になってしまいます。


{"a" : {"英語": "a", "ひらがな": "あ"}, "b" : {"英語": "b", "ひらがな": "い"}, "c" : {"英語": "c", "ひらがな": "う"}}

こちらの実行結果にするには
どういったコードがありますでしょうか?
教えていただけると幸いです。
宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

python

1list1 = ["a", "b", "c"] 2list2 = ["あ", "い", "う"] 3key1 = "英語" 4key2 = "ひらがな" 5 6dic = {v1 : {key1: v1, key2 : v2} for v1,v2 in zip(list1, list2)} 7 8print(dic) 9 10#{'a': {'英語': 'a', 'ひらがな': 'あ'}, 'b': {'英語': 'b', 'ひらがな': 'い'}, 'c': {'英語': 'c', 'ひらがな': 'う'}}

でうまくいきました。

投稿2021/08/13 16:48

dd_

総合スコア111

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

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

0

ベストアンサー

dic = {v1 : {k : v1, k : v2} for k,v1,v2 in zip(keys, list1, list2)}

まず、zipですが指定された全部のリストや辞書の要素を順に取り出して処理するのですから、要素数が異なっていれば想定通りの動作をしません。
赤、黄、緑の箱の中に番号を振ったボールがそれぞれ入っていたとして、全ての箱から1番を取り出せ、2番を取り出せ・・・ってやっていったら入ってるボールの数が違うと途中で「これ以上出せません」ってなりますよね。

次に、辞書ですから、当然同じキーは重複できません。
{k : v1, k : v2}
このようにしても、先に作った要素は、後に作った要素で上書きされます。

投稿2021/08/13 16:30

udon-ken

総合スコア657

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問