Pythonでソート、順番を並び替える方法

この記事の内容
  • Pythonでソート、順番を並び替える方法

この記事の対象者
  • Pythonエンジニア
  • Pythonの学習者

この記事の構成
  1. list.sort()
  2. sorted()

はじめに

今回は順番を並び替える方法を紹介します。

list.sort()

list の順番を直接変更します。
reverse=True で順番が逆になります。


list_number = [2, 0, 3, 1]
list_char = ['d', 'a', 'c', 'b']

list_number.sort()
list_char.sort()

print(list_number)
print(list_char)

list_number.sort(reverse=True)
list_char.sort(reverse=True)

print(list_number)
print(list_char)

# 出力結果

[0, 1, 2, 3]
['a', 'b', 'c', 'd']
[3, 2, 1, 0]
['d', 'c', 'b', 'a']

注意点は list の中身自体の順番が変わると言うことです。

sorted()

イテラブルからソートしたリストを作成し返します。
もとのイテラブルは変更されません。
reverse=True で順番が逆になります。

イテラブルは
(反復可能オブジェクト) 要素を一度に 1 つずつ返せるオブジェクトです。
list や tuple など for 文の in のあとに入れられているあれです。


list_number = [2, 0, 3, 1]
list_char = ['d', 'a', 'c', 'b']

sorted_list_number = sorted(list_number)
sorted_list_char = sorted(list_char)

print(sorted_list_number)
print(sorted_list_char)

sorted_list_number = sorted(list_number, reverse=True)
sorted_list_char = sorted(list_char, reverse=True)

print(sorted_list_number)
print(sorted_list_char)

# 出力結果
[0, 1, 2, 3]
['a', 'b', 'c', 'd']
[3, 2, 1, 0]
['d', 'c', 'b', 'a']

終わりに

両者ともに引数に key を指定することができます。

ソート HOW TO Python 3.8.3 ドキュメント

詳しくはオフィシャルのドキュメントをご覧ください。

それではお疲れ様でした!