スポンサーリンク

Pythonのリストの要素をソートする方法

Pythonのリストの要素をソートする方法です。

sort()で、リストの要素を昇順にソート

下記の形式で、sort()メソッドを使うことで、リストの要素を昇順にソートできます。
リストの中身がソートされることに注意が必要です。

list.sort()

例えば、下記のように書きます。

list = [9, 4, 10, 5, 8]
list.sort()
print(list)

下記が実行結果になります。
[4, 5, 8, 9, 10]

スポンサーリンク

reverse()で、リストの要素を逆順にソート

下記の形式で、reverse()メソッドを使うことで、リストの要素を逆順にソートできます。
リストの中身がソートされることに注意が必要です。

list.reverse()

例えば、下記のように書きます。

list = [9, 4, 10, 5, 8]
list.reverse()
print(list)

下記が実行結果になります。
[8, 5, 10, 4, 9]

sort()で、リストの要素を降順にソート

降順にリストの要素をソートする場合には、引数にreverse = Trueを設定します。

list.sort(reverse = True)

例えば、下記のように書きます。

list = [9, 4, 10, 5, 8]
list.sort(reverse = True)
print(list)

下記が実行結果になります。
[10, 9, 8, 5, 4]

sorted()でリストの中身を変更せずに、ソート結果(昇順)を新規に作成

sort()メソッドはリストの中身が直接変更されてしまいます。
sorted()関数を使うことで、ソート結果(昇順)を新規に作成することができます。

listNew = sorted(list)

例えば、下記のように書きます。

list = [9, 4, 10, 5, 8]
list2 = sorted(list)
print(list)
print(list2)

下記が実行結果になります。リストの中身は変更されていないことが確認できます。
[9, 4, 10, 5, 8]
[4, 5, 8, 9, 10]

sorted()でリストの中身を変更せずに、ソート結果(降順)を新規に作成

sorted()関数で、降順でソート結果を新規に作成する場合には、引数にreverse = Trueを追加します。

listNew = sorted(list, reverse = True)

例えば、下記のように書きます。

list = [9, 4, 10, 5, 8]
list2 = sorted(list, reverse = True)
print(list)
print(list2)

下記が実行結果になります。リストの中身は変更されていないことが確認できます。
[9, 4, 10, 5, 8]
[10, 9, 8, 5, 4]

サンプルコード

下記がサンプルコードになります。

 $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

list = [9, 4, 10, 5, 8]
list.sort()
print(list)

list = [9, 4, 10, 5, 8]
list.reverse()
print(list)

list = [9, 4, 10, 5, 8]
list.sort(reverse = True)
print(list)

list = [9, 4, 10, 5, 8]
list2 = sorted(list)
print(list)
print(list2)

list = [9, 4, 10, 5, 8]
list2 = sorted(list, reverse = True)
print(list)
print(list2)

下記が実行結果になります。
 $ ./sample.py 
[4, 5, 8, 9, 10]
[8, 5, 10, 4, 9]
[10, 9, 8, 5, 4]
[9, 4, 10, 5, 8]
[4, 5, 8, 9, 10]
[9, 4, 10, 5, 8]
[10, 9, 8, 5, 4]

スポンサーリンク