まくまくPythonノート
リストを昇順ソート/降順ソートする (list.sort/sorted)
2013-04-25

リストを昇順ソートする

a = [3, 5, 2, 1, 4]
a.sort()
print(a)  #=> [1, 2, 3, 4, 5]

list オブジェクトの sort() メソッドを呼び出すと、要素が昇順ソートされます。 そのリスト自身の内容が変更されることに注意してください(破壊的メソッド)。 なお、tuple は不変なので sort() できません。

リストを降順ソートする

a = [3, 5, 2, 1, 4]
a.sort(reverse=True)
print(a)  #=> [5, 4, 3, 2, 1]

list を sort() するときに、reverse パラメータを True に設定すると、降順にソートされます。

ソートされた新しいリストを生成する

list.sort() メソッドの代わりに sorted() 関数を使用すると、元のリストを変更せずに、ソートされた新しいリストを生成することができます。

>>> a = [3, 5, 2, 1, 4]
>>> b = sorted(a)
>>> a
[3, 5, 2, 1, 4]
>>> b
[1, 2, 3, 4, 5]

sorted() 関数は、immutable なタプルに対しても適用することができます。

>>> t = (3, 1, 2)
>>> sorted(t)
[1, 2, 3]
2013-04-25