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

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

新規登録して質問してみよう
ただいま回答率
85.45%
標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

Python

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

3回答

1499閲覧

Pythonでネストされた辞書型の入れ子の要素でソートしたい

Zakkia

総合スコア5

標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

Python

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/11/12 16:01

前提・実現したいこと

DIC={'入力文':{'あなたは、遊んでますか?':1.0},'A1相槌':{'いいね':0.0},'A1知識':{..すみません。[]とはなんですか?':0.333}
というネストされたdict型のDICの中身を3つ目のfloat型の値を基準にsortを行いたいのですが、どのように記述すれば良いのか分かりません。

実現したいこと
RESULT = {'入力文':{'あなたは、遊んでますか?':1.0},'A1知識':{..すみません。[]とはなんですか?':0.333},'A1相槌':{'いいね':0.0}}

補足情報(FW/ツールのバージョンなど)

python

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

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

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

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

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

guest

回答3

0

既にある解答よりは冗長ですが、考え方の参考にしてください。

p.py

python3

1data = { 2 '入力文':{'あなたは、遊んでますか?':1.0}, 3 'A1相槌':{'いいね':0.0}, 4 'A1知識':{'..すみません。[]とはなんですか?':0.333}, 5} 6 7# [評価値、val] のリストに変換する 8z = [[list(v.values())[0], {k: v}] for k, v in data.items() ] 9print(z) 10 11# 評価値でソートする 12z = sorted(z) 13print(z) 14 15# value の dict に戻す 16z = {list(e[1].keys())[0]: list(e[1].values())[0] for e in z} 17print(z) 18 19print() 20# 一行で書く 21z = {list(e[1].keys())[0]: list(e[1].values())[0] 22 for e in sorted([[list(v.values())[0], {k: v}] for k, v in data.items()]) 23 } 24print(z)

実行例
イメージ説明

投稿2021/11/15 22:31

katoy

総合スコア22324

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

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

0

Python

1out = dict(sorted(DIC.items(),key=lambda x: -list(x[1].values())[0]))

でしょうか。

投稿2021/11/12 16:45

otn

総合スコア84857

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

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

Zakkia

2021/11/13 00:16

出来ました!ありがとうございます。
guest

0

ベストアンサー

こんな感じでどうでしょ?

python

1DIC = { 2 '入力文':{'あなたは、遊んでますか?':1.0}, 3 'A1相槌':{'いいね':0.0}, 4 'A1知識':{'..すみません。[]とはなんですか?':0.333}, 5} 6 7for key, data in sorted(DIC.items(), key=lambda e: [*e[1].values()][0]): 8 print(key, data) 9

出力結果:

A1相槌 {'いいね': 0.0}

A1知識 {'..すみません。[]とはなんですか?': 0.333}
入力文 {'あなたは、遊んでますか?': 1.0}

投稿2021/11/12 16:21

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Zakkia

2021/11/13 00:16

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.45%

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

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

質問する

関連した質問