質問: dive_into_code dic.sort(key=lambda dic: dic[1]) print(dic) ``` これを実行すると・・・ [(4, 'Kimura'), (3, 'Miyaoka'), (2, 'Nakao'), (1, 'Noro')] になります。なぜですか。
回答: `dic.sort(key=lambda dic: dic[1])` だと `(4, 'Kimura')` の `Kimura` などを取り出して比較に使うことになっています。 ※ なので、 アルファベット順になっていますよね? もし、数字の部分で並べたいならば `dic.sort(key=lambda dic: dic[0])` とすると良いです。 ※ PythonのListやTupleの添字は0から始まります ■ 追記1: key = lambdaの意味 並べ替えのKeyとして、 その key= に与えられた関数(の結果)を使うという意味になります。 その関数には、Listなどのそれぞれの 「要素」 が入力として与えられます。 なので、 `key=lambda dic: dic[1]` ならば、 `dic` には `(4, 'Kimura')` などの要素が入ります。 その関数の return は `dic[1]` なので `'Kimura'` などになり、その値で要素がsortされることになります。 以下の説明なども参考になるかもしれません。 https://qiita.com/n10432/items/e0315979286ea9121d57