Pythonには、リストや他の反復可能なオブジェクトをソートするための組み込み関数sorted
があります。この関数は非破壊的で、元のオブジェクトを変更せずに新しいソートされたリストを返します。
基本的な使用方法
# 数値のリストをソート
list1 = [4, 3, 1, 2]
sorted_list1 = sorted(list1)
print(sorted_list1) # => [1, 2, 3, 4]
# 文字列をソート
string1 = 'FDACBE'
sorted_list2 = sorted(string1)
print(sorted_list2) # => ['A', 'B', 'C', 'D', 'E', 'F']
キーワード引数
sorted
関数は、キーワード引数key
とreverse
を取ることができます。
key
は比較対象のキーを設定し、デフォルトのソート挙動を変更することができます。reverse
はソート順序を変更することが可能です。
# key引数を使用して文字列のリストを小文字でソート
list1 = ['Kiwi', 'Banana', 'Apple', 'apple', 'kiwi', 'banana']
sorted_list2 = sorted(list1, key=str.lower)
print(sorted_list2) # => ['Apple', 'apple', 'Banana', 'banana', 'Kiwi', 'kiwi']
注意点
sorted
関数は非破壊的な関数であるため、元のオブジェクトには変化がありません。しかし、リストオブジェクトを破壊的に並び替えたい場合(呼び出し元のリスト自体を直接並び替える)は、list.sort
メソッドの使用を検討してください。
# list.sortメソッドを使用した例
a = [4, 1, 2, 6]
a.sort()
print(a) # => [1, 2, 4, 6]
以上、Pythonの非破壊的ソートについての基本的な情報を提供しました。これらの知識を活用して、Pythonでのデータ操作をより効率的に行ってください。