Pythonで文字列リストを末尾の文字順にソートする方法
Pythonでは、文字列のリストを「末尾の文字」を基準に並べ替えたい場面があります。そのような場合、負のインデックス(-1)を使って各要素の最後の文字を返す関数を定義し、それを sort() メソッドの key 引数に指定することで、簡単に実現できます。
サンプルコード
以下に具体的な実装例を示します。
def get_rear_position(element):
return element[-1]
my_list = ['python', 'is', 'fun', 'to', 'learn']
print("The list is : ")
print(my_list)
my_list.sort(key = get_rear_position)
print("The result is : ")
print(my_list)出力結果
The list is : ['python', 'is', 'fun', 'to', 'learn'] The result is : ['python', 'fun', 'learn', 'to', 'is']
コードの解説
get_rear_position関数は、リストの各要素(文字列)を引数として受け取り、負のインデックスelement[-1]を使って末尾の1文字を返します。ソート対象となるリスト
my_listを定義し、まず元の状態をコンソールに表示しています。sort()メソッドのkey引数に先ほど定義した関数を指定することで、「末尾の文字」を比較基準としてリストが昇順に並べ替えられます。最後に、ソート後の結果がコンソールに出力されます。
ラムダ式を使った簡潔な書き方
専用の関数を定義しなくても、ラムダ式(無名関数)を使えば1行で同じ処理を実現できます。
my_list.sort(key=lambda x: x[-1])
このように、key 引数には任意の関数を渡せるため、文字列の先頭・末尾・特定位置の文字など、柔軟なソート条件を指定できるのがPythonの強みです。
-
Pythonでタプルのリストを文字列のリストに変換する方法
Pythonでデータ処理を行っていると、要素がタプルになっているリストを扱う場面に遭遇することがあります。さらに、そのタプルを文字列へ変換し、文字列のリストとして取得したいケースも少なくありません。本記事では、タプルのリストを文字列のリストに変換する2つの代表的な方法を、具体的なコード例とともに解説します。方法1:join()とリスト内包表記を使う文字列のjoin()メソッドは、シーケンス(ここではタプル)の各要素を指定した区切り文字で連結し、1つの文字列として返します。区切り文字に空文字列を指定すれば、タプル内の要素をそのまま連結できます。リスト内包表記を使えば、リスト内のすべてのタプルに対
-
Pythonで文字列のリストを並べ替える方法:sort()とsorted()の使い分け
Pythonでは、文字列のリストを並べ替える方法が2つ用意されています。リスト自体を直接変更するsort()メソッドと、元のリストを保持したまま新しい並べ替え済みリストを作成するsorted()関数です。それぞれの特徴と使い方を解説します。 sort()メソッドでリストをその場で並べ替える sort()は、リストそのものを並べ替える「in-place(破壊的)」な操作です。元のリストの順序が直接変更されるため、戻り値を受け取る必要はありません。 >>> a = [Hello, My, Followers] >>> a.sort() >>>