Python | sort()、sorted()でリストをソートする方法

2023-02-23Python リスト,Python

Python | sort()、sorted()でリストをソートする方法

Pythonのsort()メソッドやsorted()関数を使ってリスト(配列)をソートする方法とサンプルコードを紹介しています。

確認環境

Windows11 ローカル
Python python-3.11.1

sort()でリストをソートする(上書き)

Pythonでリストをソートして並び替える方法のひとつにsort()メソッドがあります。

第一引数にソートしたいリスト(配列)を指定します。

sort()メソッドではリスト(配列)に文字列型以外(数値型など)の値が混在しているとエラーになります。

sort()メソッドは指定したリストを上書きします。
新しいリストを作成する場合はsorted()関数を利用します。

data = ['Pine', 'Banana', 'Apple']

data.sort()

print(data)
# ['Apple', 'Banana', 'Pine']

逆順にソートする場合は第二引数に「reverse=True」を指定します。
「1」や「true」を指定してもエラーになります。

data = ['Apple', 'Banana', 'Pine']

sort(data, reverse=True)

print(data)
// ['Pine', 'Banana', 'Apple']

数値データのソート結果は以下のようになります。

data = [ 3, 2, 1]

data.sort()

print(data)
# [1, 2, 3]

sort()でリストをソートする(新規作成)

Pythonでリストをソートして並び替えるにはsorted()関数も利用できます。

第一引数にソートしたいリスト(配列)を指定します。

sorted()関数ではリスト(配列)に文字列型以外(数値型など)の値が混在しているとエラーになります。

sorted()関数はソートされた新しい関数を結果として返します。

data = ['Pine', 'Banana', 'Apple']

new_data = sorted(data)

print(new_data)
# ['Apple', 'Banana', 'Pine']

逆順にソートする場合は第二引数に「reverse=True」を指定します。
「1」や「true」を指定してもエラーになります。

data = ['Apple', 'Banana', 'Pine']

new_data = sorted(data, reverse=True)

print(new_data)

数値データのソート結果は以下のようになります。

data =  [3, 2, 1]

new_data = sorted(data)

print(data)
# [1, 2, 3]

ソートされるリストの並び順の検証

以下のサンプルコードでは英字、ひらがな、カタカナ、空文字、漢字それぞれのソートされた位置を確認しています。

結果、ソートされる順番は空文字、英字、ひらがな、カタカナ、漢字となり漢字以外はアルファベットまたは50音順にソートされている事が確認できました。

data = [ 'Pine', 'Banana', 'Apple', '友情', '愛情', 'ミカン', 'ブドウ', 'みかん', 'ぶどう', '']

data.sort()

print(data)
# ['', 'Apple', 'Banana', 'Pine', 'ぶどう', 'みかん', 'ブドウ', 'ミカン', '友情', '愛情']