Pythonで文字列のリストをソートする方法【sort()とsorted()の使い方】
このチュートリアルでは、Pythonで文字列のリストをソートする方法を解説します。リストのsort()メソッドと組み込み関数sorted()を使った基本的な並べ替えに加え、文字数や数値など、さまざまな条件に基づいたソートの方法まで詳しく見ていきましょう。
sort()メソッドで昇順にソートする
まずは、list.sort()メソッドを使った基本的なソート方法です。sort()メソッドは元のリストを直接書き換える(インプレースでソートする)点が特徴です。それではコードを見てみましょう。
サンプルコード
# 文字列のリスト strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] # 昇順にソート strings.sort() # ソート結果を表示 print(strings)
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
['C', 'Django', 'Java', 'Javascript', 'Python', 'React', 'Spring']
sort()メソッドで降順にソートする
降順でソートしたい場合は、sort()メソッドにreverse=Trueを引数として渡します。降順ソートのコードを見てみましょう。
サンプルコード
# 文字列のリスト strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] # 降順にソート strings.sort(reverse=True) # ソート結果を表示 print(strings)
実行結果
['Spring', 'React', 'Python', 'Javascript', 'Java', 'Django', 'C']
sorted()関数でソートする
続いて、組み込み関数sorted()を使ったソート方法です。sorted()関数は元のリストを変更せず、ソート済みの新しいリストを返す点がsort()メソッドとの大きな違いです。
サンプルコード
# 文字列のリスト strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] # 昇順にソート(新しいリストを作成) sorted_strings = sorted(strings) # ソート結果を表示 print(sorted_strings)
実行結果
['C', 'Django', 'Java', 'Javascript', 'Python', 'React', 'Spring']
sorted()関数でも、第2引数としてreverse=Trueを渡すことで降順ソートが可能です。コードを見てみましょう。
サンプルコード
# 文字列のリスト strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] # 降順にソート(新しいリストを作成) sorted_strings = sorted(strings, reverse=True) # ソート結果を表示 print(sorted_strings)
実行結果
['Spring', 'React', 'Python', 'Javascript', 'Java', 'Django', 'C']
key引数で文字数順にソートする
文字列の長さ(文字数)を基準にソートしたい場合はどうすればよいのでしょうか。実は、sort()メソッドやsorted()関数にkey引数を渡すことで、任意の基準でソートできます。ここでは、文字数の昇順にソートする例を見てみましょう。
サンプルコード
# 文字列のリスト strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] # 文字数の昇順にソート strings.sort(key=len) # ソート結果を表示 print(strings)
実行結果
['C', 'Java', 'React', 'Python', 'Django', 'Spring', 'Javascript']
key引数には任意の関数を渡すことができます。sort()メソッドは、key引数に渡された関数の戻り値を基準にリストを並べ替えます。この仕組みはsorted()関数でも同様に機能します。
key引数で数値としてソートする
次に、sorted()関数とkey引数を使って、数値の大小関係に基づいて文字列のリストをソートする例を見てみましょう。数字の文字列をそのままソートすると辞書順になってしまうため、intをkeyに指定することで正しく数値順に並べ替えられます。
サンプルコード
# 数字の文字列リスト strings = ['7', '34', '3', '23', '454', '12', '9'] # 数値として昇順にソート sorted_strings = sorted(strings, key=int) # ソート結果を表示 print(sorted_strings)
実行結果
['3', '7', '9', '12', '23', '34', '454']
まとめ
sort()メソッドとsorted()関数では、key引数とreverse引数を同時に指定することで、思い通りの並べ替えを柔軟に実現できます。両者の違い(元のリストを書き換えるか、新しいリストを返すか)も意識しながら、ぜひいろいろな組み合わせを試してみてください。このチュートリアルについて不明な点がある場合は、コメント欄でお気軽にお尋ねください。
-
Pythonでリストを並べ替える方法を解説!sortとsortedの使い分けからkey引数まで
Pythonでは、整数・浮動小数点数・文字列などのリストは、sortメソッドを呼び出すだけで簡単に並べ替えができます。また、降順(逆順)でソートしたい場合は、reverseパラメータにTrueを指定するだけです。sortメソッドを使った基本的な並べ替えまずは、昇順と降順それぞれのソート例を見てみましょう。my_list = [1, 5, 2, 6, 0] my_list.sort() print(my_list) my_list.sort(reverse=True) print(my_list)出力結果[0, 1, 2, 5, 6] [6, 5, 2, 1, 0]このように、sort()を呼び
-
Pythonで文字列のリストを並べ替える方法:sort()とsorted()の使い分け
Pythonでは、文字列のリストを並べ替える方法が2つ用意されています。リスト自体を直接変更するsort()メソッドと、元のリストを保持したまま新しい並べ替え済みリストを作成するsorted()関数です。それぞれの特徴と使い方を解説します。 sort()メソッドでリストをその場で並べ替える sort()は、リストそのものを並べ替える「in-place(破壊的)」な操作です。元のリストの順序が直接変更されるため、戻り値を受け取る必要はありません。 >>> a = [Hello, My, Followers] >>> a.sort() >>>