リストから順位を抽出する方法。

下記のような問題が出たのですが、プログラムの書き方がどうしても思いつきません。
一応自分で作ってはみたのですが、動きませんでした。
どのようにすればいいでしょうか。

student_dict を第一引数に,順位 nth を第二引数とする関数
print_nth_weight(sdict, nth) を完成しなさい。

第二引数 nth が 0 のとき,最大体重をもつ学生の名前とその体重を出力する。
その他のnthの値では,上から(nth+1)番目の体重を持つ学生の名前と体重を出力する。

次のような出力がプリントされる関数を作成しなさい。

期待される出力例:

print_nth_weight(students_dic, 0)では,
Masami -> 80.1

print_nth_weight(students_dic, 2)では,
Dave -> 70.7

print_nth_weight(students_dic, -1)では,
Eve -> 45.3

となる。

students_dic = { # 名前, 身長, 体重 'Alice':{'height':190, 'weight':49.5}, 'Bob':{'height': 172, 'weight': 63.0}, 'Charlie': {'height':185,'weight':77.9}, 'Masami':{'height': 173, 'weight':80.1}, 'Dave':{'height': 169, 'weight':70.7}, 'Eve': {'height': 150, 'weight':45.3}, 'Masato': {'height': 170, 'weight': 60.2}, } print(students_dic) def print_nth_weight(sdict, nth): pass # ここから私が書いたコードです。 # .... for k,v in students_dic.items(): if rank("weight") = nth + 1: print(f'print_nth_weight(sdict, nth)では、{k} -> {v["weight"]}') #ここまで # 機能確認のために関数を実行! print_nth_weight(students_dic, 0) print_nth_weight(students_dic, 2) print_nth_weight(students_dic, -1)

コメントを投稿

0 コメント