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

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

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

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

Q&A

解決済

2回答

960閲覧

python 辞書型 結合

syu-yu

総合スコア24

Python 3.x

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

0グッド

0クリップ

投稿2018/06/04 12:59

python
mac
python3を使用しています。

以下のdictを一まとめにしたいです。
具体的には、

python

1dict = 2{name:tanaka}, 3{height:180}, 4{weight:80}, 5{point:90}

↓にしたいです。

python

1{name:tanaka,height:180,weight:80,point:90} 2

updateを使えば良いとのことでしたが、書き方がわかりません。
お手数おかけしますが、宜しくお願いします。

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

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

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

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

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

guest

回答2

0

ずっと後になってから思い出してもらえればそれでいいんですが、

>>> d = {'name':'tanaka'}, {'height':180}, {'weight':80}, {'point':90} >>> type(d) <class 'tuple'> >>> d[0] {'name': 'tanaka'} >>> [item for a_dict in d for item in a_dict.items()] [('name', 'tanaka'), ('height', 180), ('weight', 80), ('point', 90)] >>> dict(item for a_dict in d for item in a_dict.items()) {'name': 'tanaka', 'height': 180, 'weight': 80, 'point': 90}

2重リスト内包で書くとスッキリしますね。

for a_dict in dでタプルから辞書を取り出して、
for item in a_dict.items()で辞書からキー値ペアのタプルを取り出して、
dict型のコンストラクタに渡せばいいですね。


辞書用のリスト内包もありました。

>>> d = {'name':'tanaka'}, {'height':180}, {'weight':80}, {'point':90} >>> {k: v for a_dict in d for k, v in a_dict.items()} {'name': 'tanaka', 'height': 180, 'weight': 80, 'point': 90}

投稿2018/06/04 14:36

編集2018/06/04 23:46
quickquip

総合スコア11038

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

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

hayataka2049

2018/06/04 14:38

それなら辞書内包がありますよ >>> d = {'name':'tanaka'}, {'height':180}, {'weight':80}, {'point':90} >>> {k:v for a_dict in d for k,v in a_dict.items()} {'name': 'tanaka', 'weight': 80, 'height': 180, 'point': 90}
quickquip

2018/06/04 14:43

確かにそれも書いておくべきでした! items() から別々の名前で束縛する必要がないので忘れてました。
syu-yu

2018/06/05 00:23

quiquiさんありがとうございます! 色々な方法で実現でき、勉強になります! 機会があればまたよろしくお願いします!
guest

0

ベストアンサー

空の辞書を作ってupdateしていくことで実現できますね。

python

1result = {} 2for d in dict: 3 result.update(d)

ちなみに、お作法的な話をついでに書いておくと、

  • そのdictの定義は各辞書の格納されたtupleとして解釈されますが、わかりづらしミスのもとなので明示的に書いた方が良いです。このように

python

1dict = ({name:tanaka}, 2 {height:180}, 3 {weight:80}, 4 {point:90})
  • dictという変数名は組み込みのdictクラスを上書きしてしまうので、やめましょう

投稿2018/06/04 13:06

hayataka2049

総合スコア30933

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

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

syu-yu

2018/06/05 00:22

なるほど!ありがとうございました! 今後は明示的に記載するように心がけます! また、内包型も勉強になりました!ありがとうございます!
hayataka2049

2018/06/05 00:24

内包表記ですねー。内包型という単語はないです(端折って書いた私も悪かった)
syu-yu

2018/06/05 00:38

ご指摘ありがとうございます。 また機会があれば是非よろしくお願い致します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問