ここでは、PythonにおけるList型の要素に対して並び替えする方法(sort()メソッド、sorted()メソッド)について解説しています。
この記事の対象
sort()で並び替え
sort()の基本的な型
変数名.sort()
sort()メソッドは、リストの要素を昇順または降順に並び替えます。
注意点は、元のリストを直接変更し、並び替え後のリストは返さない点です。
sort()を用いた使用例
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)
上記は昇順に並び替えるプログラムです。
【結果】
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
降順
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort(reverse=True)
print(my_list)
降順にしたい場合は引数に「reverse = True」を設定するだけです。
【結果】
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
Keyで並び替え
my_list = ['dog', 'cat', 'elephant', 'ant', 'aardvark']
my_list.sort(key=len)
print(my_list)
Keyを指定することでも並び替えをできます。ここでは、長さでSortをしています。
【結果】
['dog', 'cat', 'ant', 'elephant', 'aardvark']
sorted()で並び替え
sorted()の基本的な型
sorted()
sorted()関数は、リストをコピーして、コピーされたリストをソートして返します。元のリストは変更されない特徴があります。
sorted()を用いた使用例
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
上記のプログラムは元のリストは変更されません。
【結果】
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
降順
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers,reverse = True)
print(sorted_numbers)
sort()関数と同様に「reverse」をTrueとすることで可能です。
【結果】
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
Keyで並び替え
words = ['dog', 'cat', 'elephant', 'ant', 'aardvark']
sorted_words = sorted(words, key=lambda word: len(word))
print(sorted_words)
key引数には、各要素を受け取ってその長さを返す無名関数(lambda関数)を指定しています。これによって、各要素がソートされる前に、長さに基づいて変換しています。
【結果】
['dog', 'cat', 'ant', 'elephant', 'aardvark']