私はタプルのリストをこのような関数のパラメータでソートするタスクを設定しました。私はコードの2行だけで動作する関数を取得する必要があります。 ソート順序は次のようなある: 1)グレード 2)姓 3)Forenameタプルの同じインデックスを数値(降順)およびアルファベット順に並べ替えるにはどうすればよいですか? [Python]
したがって、たとえば1 doctestのは次のようになります。
sortStudents([('Tim Smith', 54), ('Anna Smith', 88), ('Barry Thomas', 88)])
これは私がこれまで持っているものです。
def sortStudents(a):
return (sorted(a, key=lambda x: (-x[1], x[0].split()[1], x[0].split()[0])))
私はこれらのテストを受けました。しかし、最後のdoctestは、数値的ではなくアルファベット順のものです。そして、数値を降順にソートすると(インデックスで)、アルファベット順の並べ替えが同時に行われます。 doctestの例は:
sortStudents([('Tim Jones', 'C'), ('Anna Smith', 'B'), ('Barry Thomas', 'A')])
ありがとうございます。
グレードが正確に1文字であることを確認していますか? –
このタスクではい。 –
@MorganThrappあなたはそれをまだ誤解しています。さまざまなインデックスについて言及している投稿です。私はタプルの同じインデックスについて話していますが、異なるパラメータタイプです。 –