Python で文字列のリストを連結する

Bishwas Ojha 2023年10月10日
  1. Python で join() メソッドを使用してリストを単一の文字列に変換する
  2. Python で map() 関数を使用して任意のデータ型のリストを単一の文字列に変換する
  3. Python で for ループを使用してリストを単一の文字列に変換する
Python で文字列のリストを連結する

この記事では、Python リストの項目を単一の文字列に連結するメソッドを紹介します。

Python で join() メソッドを使用してリストを単一の文字列に変換する

join() メソッドは、文字列区切り文字が要素のシーケンスを結合する文字列を返します。引数として反復可能なデータを取ります。

この方法は、次のように視覚化できます。

"separator".join(["List", "of", " string"])

separator から join() メソッドを呼び出し、文字列のリストをパラメータとして渡します。使用されているセパレータに応じて文字列を返します。区切り文字に改行文字 \n を使用すると、リスト要素ごとに新しい行が挿入されます。区切り文字にコンマ , を使用すると、コンマで区切られた文字列が作成されます。join() メソッドは、反復可能な文字列を返します。バイトオブジェクトを含め、文字列以外の値が反復可能である場合、TypeError が発生します。ジェネレータ式と呼ばれる式は、すべてのデータ型を機能させるために使用されます。

たとえば、変数 words_list を作成し、それにいくつかのリスト要素を書き込みます。それらは、Joeydoesnotshare および food です。セパレータ" "を使用して、join() メソッドを呼び出します。関数の引数として words_list 変数を使用します。式全体で print() 関数を使用します。

以下の例では、join() 関数は words_list 変数を引数として取ります。次に、区切り文字" "が各リスト要素の間に挿入されます。最後に、出力として、Joey does not share food という文字列を返します。

サンプルコード:

# python 3.x
words_list = ["Joey", "doesnot", "share", "food"]
print(" ".join(words_list))

出力:

Joey doesnot share food

Python で map() 関数を使用して任意のデータ型のリストを単一の文字列に変換する

map() 関数は、引数として渡された特定の関数をリストやタプルなどの反復可能なオブジェクトに適用します。関数は呼び出さずに渡されます。これは、関数に括弧がないことを意味します。map() 関数は、Python リストを文字列に変換するためのより一般的な方法のようです。

これは次のように視覚化できます。

data: d1, d2, d3, .... dn
function: f
map(function, data):
    returns iterator over f(d1), f(d2), f(d3), .... f(dn)

たとえば、変数 word_list を作成し、それにいくつかのリストアイテムを格納します。それらは、Givemeacallat および 979797 です。次に、map() 関数を記述し、関数 str と変数 words_list を引数として map() 関数に渡します。join() 関数を記述し、その引数として map オブジェクトを取ります。空の文字列" "を使用して、join() 関数を呼び出します。print() 関数を使用して式を出力します。

str 関数はすべてのリスト要素に対して呼び出されるため、すべての要素が文字列型に変換されます。次に、スペース" "が各マップオブジェクトの間に挿入され、出力セクションに示されているように文字列を返します。

# python 3.x
words_list = ["Give", "me", "a", "call", "at", 979797]
print(" ".join(map(str, words_list)))

出力:

Give me a call at 979797

Python で for ループを使用してリストを単一の文字列に変換する

for ループを使用して、リストから単一の文字列を取得できます。このメソッドでは、すべての値を繰り返し処理してから、各値を空の文字列に追加します。これは簡単なプロセスですが、より多くのメモリを必要とします。イテレータの横にセパレータを追加して、空の文字列に追加します。

たとえば、変数 words_list を作成し、リストアイテムを保存します。次に、空の文字列 sentence を作成します。for ループを使用し、変数 word をイテレーターとして使用します。wordstr() メソッドを使用し、それを変数 sentence に追加します。次に、文字列として"."を関数に追加します。その後、式を変数 sentence に割り当てます。変数をループの外側に出力します。

この例では、Python リスト words_list に要素のリストが含まれています。空の文字列変数 sentence は、ループ時にリスト要素を追加するために使用されます。ループ内で、str() メソッドは要素を文字列にタイプキャストし、"."は、空の文字列 sentence に追加される各反復可能アイテム間の区切り文字として機能します。

サンプルコード:

# python 3.x
words_list = ["Joey", "doesnot", "share", "food"]
sentence = ""
for word in words_list:
    sentence += str(word) + "."
print(sentence)

出力:

Joey.doesnot.share.food

関連記事 - Python String