2017-10-27 23 views
-2
def get_grades(grades: List[list]) -> int: 
    """Return the name of the student that has the highest grade. 
    If there is a tie for the highest grade, it should return the name that appears 
    first in grades.""" 

私のデータセットはリストのリストです。Pythonネストされたリストは助けてください

GRADES = [['Todd', 'Biology', 67, 5], ['Ben', 'Chemistry', '88', 7]] 

ここで、グレードは各サブリストのインデックス2にあります。

どうすればよいですか?

+0

別のフォームでデータを取得する方法はありますか? – PeterH

+1

は67.004または67,004ですか? –

+4

ようこそ。残念ながら、これはディスカッションフォーラム、チュートリアル、コード作成サービスではありません。時間をかけて[ask]とそれに含まれるリンクを読んでください。例を練習して[チュートリアル](https://docs.python.org/3/tutorial/index.html)を試してみてください。 Pythonが提供するツールについて紹介し、問題解決のためのアイデアを得ることさえできます。 – wwii

答えて

0

これは最高の成績を得たすべての名前のリストを返します。

info = [['susan', 'adams' , 67, 4], ['garret', 'jimmy', 88, 9], ['stack', 'overflow', 88, 11]] 
max_grade = max(person[2] for person in info) 
max_persons = [person[0] for person in info if person[2] == max_grade] 

infoが空リストでない場合は、max_persons[0]は常に最高の成績を得た者の一人の名前が含まれています

+0

多分* OPのために簡単にするジェネレータの表現とリストの理解。 – wwii

3

あなたはこの

lst=[['susan', 'adams' , 67, 004], ['garret', 'jimmy', 88, 9]] 
max(lst, key=lambda i: i[2])[0] 

出力

を試すことができます
>>> lst=[['susan', 'adams' , 67, 004], ['garret', 'jimmy', 50, 9]] 
>>> max(lst, key=lambda i: i[2])[0] 
'susan' 

組み込み関数maxは、その決定を作るために、キー、関数の引数を取ることができます。これは、Sorting How Toに記載されているソートキー機能と同じです。

+1

グレードは 'i [2]'だと思います。 – wwii

+0

はい、今変更されました –

+1

@DanielTrugman、私は '[0]'のインデックスを付けています。 –

関連する問題