sort / sorted

Pythonでリストの要素の並び順を整理したいと思うことがあります。これには sort もしくは sorted を使います。
sort は元のリスト自体を書き換えてしまうの破壊的な処理をするのに対して、sorted は元のリストは保存します。並び変わる順は基本的には「小さい数字 → 大きい数字 → 記号 → アルファベット大文字 → アルファベット小文字」となります。ascii文字以外はよく分かりません。詳しくは「python コードポイント」で調べてみてください。


さて、両者の使い分けを以下のサンプルスクリプトで確認してください。

(2-3行目) sort したのでリストAそのものが変更されました。
(6-7行目) sorted では元のリストAは変更されていません。


これだけでもなかなかの機能ですが、さらに並び替える順番を自分で指定することもできます。sorted の引数に key を記述してやるだけです。

以下のサンプルでは、リストを要素に持つリストを並び替える例です。1つ1つの要素であるリストの2番目の数字が小さい順にソートさせてみました。

この例で lambda という記述があります。lambdaというのは無名関数のことです(詳細は別記事)。なぜ lambda を使わなくてはいけないのか、使うと上手く動作するのか、はきちんと説明できませんので、へ〜こういう書き方があるんだ、と思うだけでご容赦願います。笑


Pythonの記事一覧へは こちら から。