2017-01-12 15 views
-1

I地点に着くだろう、私はこの持っている:私はタプルの第二の値によって、それを並べ替えた後、その文字列値で、その後、これを取得するためにすべての要素を印刷したいタプルのリストをその値の1つと別のタプルのリストでソートできますか?

ocurrencias = [('quiero', 1), ('aprender', 1), ('a', 1), ('programar', 1), ('en', 1), ('invierno', 2), ('hace', 1), ('frio', 1), ('este', 1)] 

を:

output:invierno 2 
      a 1 
      aprender 1 
      en 1 
      este 1 
      frio 1 
      hace 1 
      programar 1 
      quiero 1 

私はそれを十分に明確にしているのかどうかわかりませんが、私は英語には堪能ではありませんので、私を許してください。各タプルの逆バージョンを作るキーで事前

答えて

6

使用sorted

おかげで、降順で第2の値をソートするには、値を否定する前に-を追加することができます。

sorted(ocurrencias, key = lambda x: (-x[1], x[0])) 
# [('invierno', 2), ('a', 1), ('aprender', 1), ('en', 1), ('este', 1), ('frio', 1), ('hace', 1), ('programar', 1), ('quiero', 1)] 

@Jonathonによってコメントされた理由は、リストとタプルの比較が最初の要素を比較するという事実のためです。 2番目の要素と等しくない場合は、object comparisonのpythonを参照してください。

+1

私の答えよりも簡単です。非常に素晴らしい。デフォルトでは、タプルは最初の要素、2番目の要素などが比較されます。 –

+0

ありがとうPsidom!、私はそれが私が誰の研究にも近づかなかったように見えるが、私がした答えはどれも私が本当にクリックしたという事実に加えて、私が最初の言語であるPython私はまだそれにかなり圧倒されています。 – Fgbruna

+0

この答えは、これを行うための複雑な方法です: 'sorted(ocurrencias、key = lambda x:x [1]、reverse = True)' – Harvey

関連する問題