0
students_grade
は、それぞれが学生名とグレードを持つタプルを含むリストです。たとえば :辞書をint(値)でソートする
students_grade = [('jon','88'), ('bran', '100'), ('arya','93'), ('dan', '88')]
目標は成績順と同じタプルで新しいリストを作成することです:
辞書を使用して、それを解決しようとしました[('jon','88'), ('dan', '88',' ('arya','93'),('bran','100')]
は、しかし私は、'100' < '93'
はTrue
を返すことに気づきましただから、int(values)
で辞書をソートしようとしましたが、TypeError
があります。
dic = {}
for i in students_grades:
dic[i[0]] = i[1]
sorted_keys = sorted(dic.keys(), key = int(dic.get), reverse=True)
はint(dic.get)
せずにそれが正常に動作します。なぜそれは失敗するのですか?
ディクショナリインスタンスメソッドを整数に変換しようとしているためです。おそらくあなたは 'key = lambda k:int(dic.get(k))'のようなものを意味していました。 'key'引数は、単一の引数を受け入れる呼び出し可能でなければなりません。 – jonrsharpe