概要
実現方法・説明
ここではリスト内の要素の並べ替えを説明する。
sort()を使う
リスト内の要素を直接並べ替えるときはsort()を使う。
こんな感じ。
new_list = [‘zzz’, ‘yyy’, ‘aaa’, ‘ccc’, ‘bbb’]
new_list.sort()
リスト「new_list」を並べ替えした例である。
「new_list」の内容が直接ソートされる。
sort()した後の「new_list」の内容は
[‘aaa’, ‘bbb’, ‘ccc’, ‘yyy’, ‘zzz’]になる
sort(reverse=True)を使う
リスト内の要素を直接並べ替える際に、降順にしたい場合は「reverse=True」を使うとよい
。
こんな感じ。
new_list = [‘zzz’, ‘yyy’, ‘aaa’, ‘ccc’, ‘bbb’]
new_list.sort(reverse=True)
リスト「new_list」を並べ替えした例である。
「new_list」の内容が直接ソートされる。
sort(reverse=True)した後の「new_list」の内容は
[‘zzz’, ‘yyy’, ‘ccc’, ‘bbb’, ‘aaa’]になる
sorted()を使う
リスト内の要素を並べ替えて他のリストを生成するときはsorted()を使う。
こんな感じ。
new_list = [‘zzz’, ‘yyy’, ‘aaa’, ‘ccc’, ‘bbb’]
tmp_list = sorted(new_list)
リスト「new_list」を並べ替えした値で「tmp_list」を生成した例である。
ソート後でも「new_list」の内容は変わらない。
sorted()した後の「tmp_list」の内容は
[‘aaa’, ‘bbb’, ‘ccc’, ‘yyy’, ‘zzz’]になる
sorted()でも「reverse=True」を使うことが出来る
こんな感じ。
new_list = [‘zzz’, ‘yyy’, ‘aaa’, ‘ccc’, ‘bbb’]
tmp_list = sorted(new_list, reverse=True)
sorted()した後の「tmp_list」の内容は
[‘zzz’, ‘yyy’, ‘ccc’, ‘bbb’, ‘aaa’]になる
注意点
・sort()を使用すると元のリストは無くなるので、ソート前後の値を両方保持したい場合は、sorted()を使用する。
・リストに含まれる要素の方がすべて同じ場合は、sort()は正しく動作する。型が混じっている場合は、保証されない。
・多次元のリストを複数のソートキーで並べ替えるときは別途説明する。
使用例
動作確認環境:Python3.6.5 / macOS 10.15.6
ex.1 sort()を使う
一次元のリストを作成し、昇順にソートする。
コード
#リストの定義 new_list = ['zzz', 'yyy', 'aaa', 'ccc', 'bbb'] #リストの要素の並べ替え new_list.sort() print(new_list)
実行結果
[‘aaa’, ‘bbb’, ‘ccc’, ‘yyy’, ‘zzz’]
解説
2行めで要素が5つのリスト「new_list」を作成する。
5行めで「new_list」をソートする。
6行めで「new_list」の値を表示するとリスト内の要素がソートされていることがわかる。
ex.2 sort(reverse=True)を使う
一次元のリストを作成し、降順にソートする。
コード
#リストの定義 new_list = ['zzz', 'yyy', 'aaa', 'ccc', 'bbb'] #リストの要素の並べ替え new_list.sort(reverse=True) print(new_list)
実行結果
[‘zzz’, ‘yyy’, ‘ccc’, ‘bbb’, ‘aaa’]
解説
2行めで要素が5つのリスト「new_list」を作成する。
5行めで「new_list」をreverse=Trueでソートする。
6行めで「new_list」の値を表示するとリスト内の要素が降順でソートされていることがわかる。
ex.3 sortedを使う
一次元のリストを作成し、昇順にソートした後、降順にソートする。
コード
#リストの定義 new_list = ['zzz', 'yyy', 'aaa', 'ccc', 'bbb'] #リストの要素の並べ替え(昇順) tmp_list = sorted(new_list) #内容の表示 print('--- 元のリスト ---') print(new_list) print('--- ソート後のリスト ---') print(tmp_list) #リストの要素の並べ替え(降順) tmp_list = sorted(new_list, reverse=True) #内容の表示 print('--- 元のリスト ---') print(new_list) print('--- ソート後のリスト ---') print(tmp_list)
実行結果
— 元のリスト —
[‘zzz’, ‘yyy’, ‘aaa’, ‘ccc’, ‘bbb’]
— ソート後のリスト —
[‘aaa’, ‘bbb’, ‘ccc’, ‘yyy’, ‘zzz’]
— 元のリスト —
[‘zzz’, ‘yyy’, ‘aaa’, ‘ccc’, ‘bbb’]
— ソート後のリスト —
[‘zzz’, ‘yyy’, ‘ccc’, ‘bbb’, ‘aaa’]
解説
2行めで要素が5つのリスト「new_list」を作成する。
5行めで「new_list」をソートして「tmp_list」に代入する。
8,10行めで「new_list」と「tmp_list」の値を表示する。
元のリスト「new_list」の並びは変わっていない。
代入したリスト「tmp_list」の要素が昇順でソートされていることがわかる。
14行めで「new_list」を逆順ソートして「tmp_list」に代入する。
18,20行めで「new_list」と「tmp_list」の値を表示する。
元のリスト「new_list」の並びは変わっていない。
代入したリスト「tmp_list」の要素が降順でソートされていることがわかる。
補足
なし
Pythonバンザイ