質問したいこと
dict.sort(key=lambda)を使ったとあるコードの仕組みに関して
質問の詳細
私は、Pythonを学習しており、とあるコードの仕組みが理解できず困っております。
コードの内容は以下です。
>>> dict = [(1,'Nomura'),(2,'Nagashima'),(3,'Miyamoto'),(4,'Hoshino')] >>> dict.sort(key=lambda dict: dict[1]) >>> dict [(4, 'Hoshino'), (3, 'Miyamoto'), (2, 'Nagashima'), (1, 'Nomura')]
最終的に「>>> dict」の出力結果が上記のようになる仕組みが理解できません。
これは恐らく、Value値の昇順になっていると予測していますが合っているでしょうか。
予測の根拠は、以下のコードに書き換えて実行してみると、Value値の昇順になっているように思えたからです。
>>> dict =[(1,'Hoshino'),(2,'Miyamoto'),(3,'Nagashima'),(4,'Nomura')] >>> dict.sort(key=lambda dict: dict[1]) >>> dict [(1, 'Hoshino'), (2, 'Miyamoto'), (3, 'Nagashima'), (4, 'Nomura')]
私のlambdaに対する認識は、関数のように動き、「dict: dict[1]」の左辺dictが返り値、dict[1」が関数式であるということぐらいです。
dict.sort()に関しては、引数を渡さない場合は Index値の昇順に並び変えるという認識です。
(上記は自分で調べた結果、自分なりに理解したもので、間違い等あればご指摘お願いします)
sortに Value値を渡すとValue値の昇順で並び変えるのでしょうか。
仕組みをご教示いただけると嬉しいです。
よろしくお願い致します。
補足情報(FW/ツールのバージョンなど)
Python 3.6.5
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/11 05:27