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

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

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

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

Q&A

解決済

3回答

2688閲覧

python 辞書 最大値 最小値

sweden1

総合スコア59

Python 3.x

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

0グッド

0クリップ

投稿2017/01/31 03:54

dict={'image':'data','1.jpeg':1,,'2.jpeg':2,'3.jpeg':3}

と辞書があるときに、最大値の画像を表示または、どの画像が大きな値を持っているかを知るにはどうしたら良いでしょうか。

max関数を試しましたがうまくいきませんでした。

ご返信していただけると幸いです

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

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

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

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

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

guest

回答3

0

ベストアンサー

以下のようにすると、dictionaryの「値」をmax関数のキーにして最大、最小を求められます。

Python

1import operator 2dict = {'image':'data','1.jpeg':1,'2.jpeg':2,'3.jpeg':3} 3del dict['image'] # 見出しを除去 4 5# 2.xなら dict.iteritemsを利用 6valMax = max(dict.items(), key=operator.itemgetter(1)) 7valMin = min(dict.items(), key=operator.itemgetter(1)) 8print( valMax) #('3.jpeg', 3) 9print( valMin) #('1.jpeg', 1) 10

参考:Getting key with maximum value in dictionary?

投稿2017/01/31 04:14

編集2017/01/31 04:42
can110

総合スコア38266

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

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

sweden1

2017/01/31 04:35

ご返信ありがとうございます。 実行すると以下のエラーが起きました valMax = max(dict.iteritems(), key=operator.itemgetter(1)) AttributeError: 'dict' object has no attribute 'iteritems'
sweden1

2017/01/31 04:39

上記のエラーが取れました Python3からはiteritems(),→items()になったそうです ありがとうございました
can110

2017/01/31 04:43

環境を確認していませんでした。失礼しました。 3.xではiteritems削除されていますね。回答も修正しました。
sweden1

2017/01/31 04:46

ありがとうございます
sweden1

2017/01/31 04:48

最小値、最大値の値からcv2.imshowで画像を表示したいのですがどうしたら良いでしょうか?
can110

2017/01/31 04:53

今回の質問とは異なる問題なので、新たに質問を立てるべきだと思います。
guest

0

データ量や実際の値がわからないですが、愚直にやるならこんな感じでしょうか。
max使ってうまくいかないのはきっと、dataが選出されてしまうかなと思ったので、数値で抜き出せる状態にしてからmax使っているだけですが。

dict = {'image': 'data', '1.jpeg': 1, '2.jpeg': 2, '3.jpeg': 3} num_only_dict = {k: v for k, v in dict.items() if isinstance(v, (int, long))} print max(num_only_dict.values())

投稿2017/01/31 04:15

HRS_O

総合スコア70

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

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

sweden1

2017/01/31 04:45

ありがとうございます
guest

0

python

1for key, value in dict.items(): # for/if文では文末のコロン「:」を忘れないように 2 print key, value

これを実行することで以下のような結果を得ることができます。

image data 1.jpeg 1 2.jpeg 2 3.jpeg 3

なので、このfor文の中で一番なvalueを見つけ出し、表示すればいいと思います。

投稿2017/01/31 04:13

black_sleepman

総合スコア220

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問