私はいくつかのリストを持っています、私はそれらをマージしました、しかしどうすれば値を降順でそしてそれをSTDとして置くことができますか?

ジムイェ

私のリストが表示されます:

['river: 0.3']
['spread: 0.04']
['idaho: 0.5']

最初にそれらをマージしてから、値の降順でランク付けして、標準出力として配置します。最後に文を印刷します。たとえば、最高値は0.711で、次のように印刷されます。

"the largest value is idaho"

これが私の試みですが、ランク付けしたいときに失敗しました:

u = ['river: 0.3']
v = ['spread: 0.04']
s = ['idaho: 0.5']
mergelist = u + v + s
ranklist = sorted(mergelist, key=lambda x: x[1], reverse=True)
for i in ranklist:
    print(' '.join(list(map(str, i))))
print("the largest value is" + ' ' + ranklist[0])

必要な標準出力は次のとおりです。

idaho 0.5
river 0.3
spread 0.04
the largest value is idaho
Rakesh

これは1つのアプローチです

u = ['river: 0.3']
v = ['spread: 0.04']
s = ['idaho: 0.5']
mergelist = u + v + s

import operator

d = {}
for i in mergelist:
    val = i.split(":")
    d[val[0].strip()] = float(val[1].strip())

print("the largest value is {}".format(max(d.items(), key=operator.itemgetter(1))[0]))

出力:

the largest value is Idaho
  • 文字列をで分割 :
  • 分割値からdictを形成します。
  • 演算子を使用して、辞書から最大値を取得します。

コメントで要求されたように

for k, v in sorted(d.items(), key=lambda x: x[1], reverse=True):
    print(k, v)

出力:

idaho 0.5
river 0.3
spread 0.04

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ