2016-12-22 6 views
0

リストをソートしようとしても、別のリストへの接続を維持しようとしています。いくつかの読書をしてzip関数を見つけましたが、年齢や名前の降順でリストをソートしたいと思います。ソートリスト別のリストへの参照の順番の変更

names = ["Ged","Ethan","Sam","Paul"] 
ages = [15,9,12,19] 
list(zip(names,ages)) 
for i,j in sorted(zip(names,ages),reverse=True): 
    print(i,j) 

私はそれ以外の部分を得ることはできません。助けてください?

+2

ジップ(年齢、名前) (名前、年齢)の代わりに? – Amber

+0

2リスト(複数のキー値)に戻って並べ替えられたディクショナリへのリストの可能な複製](http://stackoverflow.com/questions/31457548/2-lists-to-sorted-dictionary-back-to-2-lists -multiple-key-values) – Prune

答えて

2

ちょうど基準として逆にタプルを返すようにkey機能を追加します。

for i,j in sorted(zip(names,ages),reverse=True,key=lambda x : x[::-1]): 
    print(i,j) 

ので、年齢が最初に考慮して取得され、その後、名前(同じ年齢であれば)、しないだけでlambda x : x[1]よりも良いですもう一つの簡単な方法は自然なソート基準が動作するように、フィールドを元に戻すことであろうすべての

でアカウントに名前を取る:

for i,j in sorted(zip(ages,names),reverse=True): 
    print(j,i) 
関連する問題