python3.5系です。
pythonでの、辞書の中にリスト(タプル)が値として入っていて、各リストのi番目の要素同士の比較をして最大、最小値を求めるプログラムです。
dict={“banana”:[23,44,55,66],”enpitu”:[11,43,55,66],”haramaki”:[44,33,55,66]}
みたいな辞書があった時、この辞書の中の1番目の値の最大値は、haramakiの44みたいなのを求める処理です。
コード
dict={"banana":[23,44,55,66],"enpitu":[11,43,55,66],"haramaki":[44,33,55,66]} #i番目の要素の最大値を取得する(今回はi=0~3) a=max(dict.items(), key= lambda x:x[1][i]) #a[0]で最大値となるvalueの値を取得 print(a[0]) #a[1][i]で最大値となるkeyの値を取得 print(a[1][i])
解説
a=max(dict.items(), key= lambda x:x[1][i])
このkeyの部分が、dictの1番目の要素のi番目の要素をもとに最大値を見つけるという条件です。
ちなみに、dict[0]=”banana” ,dict[1]=[23,44,55,66]とはなりません。keyの中でしか使えないです(間違ってたらごめんなさい)
で、i=0とすると
a=(“haramaki”, [44,33,55,66])という形でaが返ってくるので、
a[0]でkeyの値、a[1][0]で44の値がとれます。
最小値を求めたい場合は、
maxをminにすればおkです。
コメント