Pythonでリスト内のすべての文字を連結して文字列を作成する方法
リストに格納されたすべての文字を使って1つの文字列を作成したい場合があります。そのようなときは、文字のリストを引数として受け取り、各要素を順番に走査しながら新しい文字列へと連結していく関数を定義するのが基本的なアプローチです。
サンプルコード
以下は、その実装例を示したものです。
print("Method definition begins...")
def convert_to_my_string(my_string):
my_result = ""
for index in my_string:
my_result += index
return my_result
print("Method definition ends...")
my_string = ['L','e','a','r','n','P','y','t','h','o','n', 'c', 'o', 'o', 'l', 'f', 'u', 'n']
print("The list is :")
print(my_string)
print("The resultant string is :")
print(convert_to_my_string(my_string))
実行結果
Method definition begins... Method definition ends... The list is : ['L', 'e', 'a', 'r', 'n', 'P', 'y', 't', 'h', 'o', 'n', 'c', 'o', 'o', 'l', 'f', 'u', 'n'] The resultant string is : LearnPythoncoolfun
コードの解説
convert_to_my_stringという名前の関数を定義し、文字のリストを引数として受け取ります。関数内で空の文字列
my_resultを初期化します。forループで引数のリストを反復処理し、各要素(文字)を空の文字列に順次追加していきます。
連結が完了した文字列を戻り値として返します。
関数の外側で、変換対象となる文字のリストを定義し、コンソールに表示します。
このリストを引数として関数を呼び出し、得られた結果をコンソールに出力します。
より効率的な代替手段:join() メソッド
上記のように += 演算子で文字列を連結する方法は直感的で分かりやすい反面、要素数が多いリストを扱う場合には処理速度が低下することがあります。Pythonでは str.join() メソッドを使うと、1行で簡潔かつ高速に同じ処理を実現できます。
my_string = ['L','e','a','r','n','P','y','t','h','o','n', 'c', 'o', 'o', 'l', 'f', 'u', 'n'] result = "".join(my_string) print(result) # 出力: LearnPythoncoolfun
"".join(リスト) と書くことで、リスト内のすべての要素を区切り文字なしで連結できます。要素の間にスペースやハイフンなどを挿入したい場合は、" ".join(...) や "-".join(...) のように区切り文字を指定するだけで対応可能です。可読性とパフォーマンスの両面から、実務では join() を使う方法が推奨されています。
-
Pythonで文字列の接頭辞(プレフィックス)をカウントする方法:特定の文字の出現頻度を比較する
はじめに このチュートリアルでは、文字列と2つのアルファベットを受け取り、「1つ目のアルファベットの出現回数が2つ目より多い接頭辞(プレフィックス)」を抽出して表示し、その合計数を出力するPythonプログラムを作成します。 例えば、文字列 apple に対してアルファベット p と e を指定した場合、先頭から1文字ずつ増やした各接頭辞の中で、p の出現回数が e より多いものだけを出力します。 動作例 入力例1 string: apple alphabets: p, e 出力例1 ap app appl apple Total prefixes matched: 4 この場合、ap、ap
-
Pythonで共通しない文字のみを連結した文字列を作成する方法
この記事では、2つの文字列が与えられたときに、まず一方の文字列から両方に共通する文字をすべて取り除き、続いてもう一方の文字列にのみ含まれる文字を、前者にのみ含まれる文字と連結して新しい文字列を作成する方法を解説します。 具体例 入力 >> 文字列1:AABCD 文字列2:MNAABP 出力 >> CDMNP この例では、「A」と「B」が両方の文字列に共通しているため除外されます。残った文字列1側の「C」「D」と、文字列2側の「M」「N」「P」を連結すると、最終的な出力は「CDMNP」になります。 アルゴリズム uncommonstring(s1, s2)