Python
 Computer >> コンピューター >  >> プログラミング >> Python

【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 をキーとして渡すだけで簡単に実装できます。用途に応じて使い分けるとよいでしょう。このチュートリアルについて不明な点がある場合は、コメント欄でお気軽にお知らせください。

  1. 要素の長さに基づいてリストをソートする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

  2. Pythonで文字列のリストを並べ替える方法:sort()とsorted()の使い分け

    Pythonでは、文字列のリストを並べ替える方法が2つ用意されています。リスト自体を直接変更するsort()メソッドと、元のリストを保持したまま新しい並べ替え済みリストを作成するsorted()関数です。それぞれの特徴と使い方を解説します。 sort()メソッドでリストをその場で並べ替える sort()は、リストそのものを並べ替える「in-place(破壊的)」な操作です。元のリストの順序が直接変更されるため、戻り値を受け取る必要はありません。 >>> a = [Hello, My, Followers] >>> a.sort() >>>