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

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

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

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

Python

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

Q&A

解決済

1回答

234閲覧

辞書型を別の書式の辞書型として表示する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2020/06/06 00:20

編集2020/06/06 02:15

やりたいこと:辞書型を別の書式の辞書型にしたいです。
例えば、「{"key": "a" , "value": 1, "key": "b" , "value": 2}」という結果になるようにしたいです。

def func(**kwargs): for k, v in kwargs.items(): print('key:', k, ', value:', v) func(a=1, b=2)
#ちょっと違う例 def func(**kwargs): return [{"key":k, "values":v} for k, v in kwargs.items()] print(func(a=1, b=2))

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

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

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

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

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

guest

回答1

0

ベストアンサー

Python

1def func(**kwargs): 2 return [{"key":k, "values":v} for k, v in kwargs.items()] 3print(func(a=1, b=2)) 4# [{'key': 'a', 'values': 1}, {'key': 'b', 'values': 2}] 5```ですね。

投稿2020/06/06 01:06

編集2020/06/06 01:40
ForestSeo

総合スコア2720

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

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

退会済みユーザー

退会済みユーザー

2020/06/06 01:10

すいません。おっしゃるとおりカンマがいりますね。私も最後尾だけの表示はできるんですが、複数を表示させることができません。もし、ご存知でしたらコードをお願いできませんか?
退会済みユーザー

退会済みユーザー

2020/06/06 01:31

試してみました。ありがとうございます。頂いたコードは非常に参考になるのですが、できたら「def func(**kwargs):」を使って書いて頂けるとすごく嬉しいです。とても面倒だとは思いますが、できたら書いて頂けないでしょうか?よろしくお願いします。
ForestSeo

2020/06/06 01:41 編集

編集しましたよ。 返り値設定してprintしました
退会済みユーザー

退会済みユーザー

2020/06/06 01:42

ありがとうございます。実は、Pythonプログラミングをはじめて1週間なので、全然分からなくて困ってました。今の自分には少し難しかったです。本当にありがとうございます。
退会済みユーザー

退会済みユーザー

2020/06/06 02:11

すいません。出来てると思ったのですが、期待どおりの出力結果になっていないので、良ければ違うコードをお願いできますか?もし技術的に無理なら無理と言って頂いてかまわないのでお願いします。ちなみに期待の出力結果は「{"key": "a" , "value": 1, "key": "b" , "value": 2}」です。
shiracamus

2020/06/06 02:22 編集

辞書データは同じキーを複数持てませんよ。 期待の出力結果には "key" と "value" が複数あり、最後に書いた方で上書きされます。 >>> {"key": "a" , "value": 1, "key": "b" , "value": 2} {'key': 'b', 'value': 2}
退会済みユーザー

退会済みユーザー

2020/06/06 02:26 編集

つまり、私がやろうとしてることは技術的に難しいということですか?そうなんですよ。私も試してみたんですけど、上書きされて最後尾のキーと値しかゲットできなかったんですよ。
退会済みユーザー

退会済みユーザー

2020/06/06 02:27

そうなんですね。わかりました。無理という事が分かって良かったです。ありがとうございます。
ForestSeo

2020/06/06 02:27

set型と同じ感じですね
退会済みユーザー

退会済みユーザー

2020/06/06 02:29

set型、、、調べてみます。ご意見ありがとうございます。
退会済みユーザー

退会済みユーザー

2020/06/06 02:37 編集

なるほど。同じ要素は消されるということですか。勉強になります。ありがとうございます。
shiracamus

2020/06/06 02:41 編集

もしできたとして、 data = {"key": "a" , "value": 1, "key": "b" , "value": 2} data["key"] や data["value"] で どの値が取り出せると思いますか?
退会済みユーザー

退会済みユーザー

2020/06/06 02:43 編集

たぶん、上書きされるので"b"と2ですか?
shiracamus

2020/06/06 02:43

希望する結果として です。 どっちっかしか取り出せないのであれば、取り出せない方の値を保存しておく必要はないですよね。
退会済みユーザー

退会済みユーザー

2020/06/06 02:46

ふむふむ、なるほど。
shiracamus

2020/06/06 03:10 編集

data = {} data["key"] = "a" data["key"] = "b" と実行したとき、data["key"] の値は "b" で上書きされます。 data = [""] data[0] = "a" data[0] = "b" も同様。
退会済みユーザー

退会済みユーザー

2020/06/06 02:54

すいません。ご丁寧に説明して頂いて本当に嬉しいです。確かに上書きされるみたいですね。それにどうせbにするならおっしゃるとおり最初からbの方が良いですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問