【Python】文字列の長さに基づいてリストを並べ替える方法
文字列のリストがあり、その長さを基準にリストを並べ替えたいとします。つまり、短い文字列から長い文字列へと昇順に整列させる必要があります。これを実現するには、独自のアルゴリズムを書くか、Pythonの組み込みメソッドであるsort()や関数sorted()を、キー(key)引数と組み合わせて使用するのが便利です。
実行例
まず、どのような動作になるのか例で確認しましょう。
入力: strings = ["hafeez", "aslan", "honey", "appi"] 出力: ["appi", "aslan", "honey", "hafeez"]
それでは、sorted(key)関数とsort(key)メソッドを使ったプログラムをそれぞれ見ていきましょう。
方法1:sorted()関数を使う
sorted()関数は、元のリストを変更せずに、並べ替え済みの新しいリストを返します。以下の手順で目的の出力を得られます。
アルゴリズム
1. 文字列のリストを初期化する。 2. sorted(list, key=len) のように、リストとキーを渡して並べ替える。文字列の長さを基準に並べ替えるため、key として len を指定します。結果のリストは変数に格納します。 3. 並べ替えたリストを出力する。
コード例
## 文字列のリストを初期化 strings = ["hafeez", "aslan", "honey", "appi"] ## key に len を指定して sorted() 関数を使用 sorted_list = list(sorted(strings, key=len)) ## 並べ替え後の文字列を出力 print(sorted_list)
出力
上記のプログラムを実行すると、次のような結果が得られます。
['appi', 'aslan', 'honey', 'hafeez']
方法2:sort()メソッドを使う
sort()メソッドは、リストをその場で(in-place)並べ替えます。そのため、結果を新しい変数に格納する必要がありません。
アルゴリズム
1. 文字列のリストを初期化する。 2. リストの sort(key=len) メソッドにキーを渡して並べ替える。文字列の長さを基準に並べ替えるため、ここでも len を key として指定します。sort() メソッドはリスト自体を直接書き換えます。 3. リストを出力する。
コード例
## 文字列のリストを初期化 strings = ["hafeez", "aslan", "honey", "appi"] ## sort(key) メソッドでリストをその場で並べ替え strings.sort(key=len) ## 並べ替え後の文字列を出力 print(strings)
出力
上記のプログラムを実行すると、次のような結果が得られます。
['appi', 'aslan', 'honey', 'hafeez']
まとめ
この記事では、Pythonで文字列のリストを長さ順に並べ替える2つの方法を紹介しました。
- sorted(list, key=len):元のリストはそのまま残し、並べ替え済みの新しいリストを返す関数です。
- list.sort(key=len):元のリスト自体をその場で並べ替えるメソッドです。
どちらも len をキーとして渡すだけで簡単に実装できます。用途に応じて使い分けるとよいでしょう。このチュートリアルについて不明な点がある場合は、コメント欄でお気軽にお知らせください。
-
要素の長さに基づいてリストをソートするPythonプログラム
この記事では、ユーザーが入力したリストを、各要素の長さ(文字数)に基づいてソートする方法を解説します。Pythonには標準で用意されている組み込み関数 sorted() を使うことで、シンプルなコードで実現できます。 例 入力::[mona,pp,aaa] それぞれの長さは [4,2,3] したがって、ソート後の並び順は [2,3,4] 出力::[pp,aaa,mona] アルゴリズム ステップ1: リストの要素を入力する。 ステップ2: sorted(A, key=len) 関数を適用する。 サンプルコード # リストをソートする def sortedlist(A): ne
-
Pythonで文字列のリストを並べ替える方法:sort()とsorted()の使い分け
Pythonでは、文字列のリストを並べ替える方法が2つ用意されています。リスト自体を直接変更するsort()メソッドと、元のリストを保持したまま新しい並べ替え済みリストを作成するsorted()関数です。それぞれの特徴と使い方を解説します。 sort()メソッドでリストをその場で並べ替える sort()は、リストそのものを並べ替える「in-place(破壊的)」な操作です。元のリストの順序が直接変更されるため、戻り値を受け取る必要はありません。 >>> a = [Hello, My, Followers] >>> a.sort() >>>