文字列 文法・環境

【Python】文字列を連結・結合する方法【join、ループなど】

Pythonにおいて、文字列を連結する方法について紹介します。

本記事では、以下の内容を紹介しています。

この記事で分かること

  • 文字列を連結する方法【+演算子】
  • 文字列と数値を連結する方法
  • リストの文字列を連結する方法【join】
  • リストの文字列を連結する方法【forループ】
  • リストの文字列と数値を連結する方法【内包表記、map関数】

スポンサーリンク

文字列を連結する方法【+演算子】

文字列を連結する方法について紹介します。

+演算子を用いることで、文字列同士を連結できます。

以下、サンプルコードです。

fruits = 'Apple' + 'Banana' + 'Orange'

print(fruits)
# AppleBananaOrange

+=演算子も文字列同士の連結に使用できます。

なお、+=演算子のことを累算代入演算子と呼びます。

fruit_1 = 'Apple'
fruit_2 = 'Banana'

fruit_1 += fruit_2

print(fruit_1)
# AppleBanana

文字列と数値を連結する方法

文字列と数値を連結する方法について紹介します。

文字列と数値を連結しようとすると、TypeErrorになります。

s1 = 'xxx'
i1 = 123
f1 = 1.5

s = s1 + '_' + i1 + '_' + f1

print(s)
# TypeError: can only concatenate str (not "int") to str

str( )関数を用いて、数値型から文字列型に変換することで、文字列と数値を文字列として連結できるようになります。

s1 = 'xxx'
i1 = 123
f1 = 1.5

s = s1 + '_' + str(i1) + '_' + str(f1)

print(s)
# xxx_123_1.5

スポンサーリンク

リストの文字列を連結する方法【join】

リストの要素の文字列を連結する方法について紹介します。

文字列のjoin( )メソッドを用いることで、リストの要素を連結できます。

joinの前の "文字列" には、リストの要素の間に挿入する文字列を指定します。

書き方

"文字列".join( リスト )

以下、サンプルコードです。

fruits = ['Apple', 'Banana', 'Orange', 'Grape', 'Peach']

res = '_'.join(fruits)
print(res)
# Apple_Banana_Orange_Grape_Peach

改行で区切り、文字列を連結

リストの要素を文字列として連結する際に、要素の間に改行を挿入することもできます。

以下、サンプルコードです。

fruits = ['Apple', 'Banana', 'Orange', 'Grape', 'Peach']

res = '\n'.join(fruits)
print(res)
'''
Apple
Banana
Orange
Grape
Peach
'''

リストの文字列を連結する方法【forループ】

forループを用いて、リストの要素を文字列として連結する方法を紹介します。

ループを回しながら、リストから要素を1つずつ取り出し、文字列に連結しています。

fruits = ['Apple', 'Banana', 'Orange', 'Grape', 'Peach']

res = ''

for fruit in fruits :
    res += fruit

print(res)
# AppleBananaOrangeGrapePeach

スポンサーリンク

リストの文字列と数値を連結する方法【内包表記、map関数】

リストの要素に、文字列型と数値型が含まれている場合に、文字列として連結する方法について紹介します。

リストの要素に、文字列型と数値型が混在している場合に、そのままjoinメソッドを用いるとTypeErrorとなります。

l = ['xxx', 123, 1.5]

res = '_'.join(l)
print(res)
# TypeError: sequence item 1: expected str instance, int found

内包表記を用いて、リストの要素をすべて文字列型に変換することで、joinメソッドで連結できます。

l = ['xxx', 123, 1.5]

res = '_'.join([str(n) for n in l])
print(res)
# xxx_123_1.5

内包表記の使い方については、下記の記事で紹介しています。

内包表記の基本的な使い方

map関数を用いても、リストの要素をすべて文字列型に変換できます。

map関数は、第一引数で指定した関数を、第二関数で指定したイテラブルオブジェクトの全ての要素に適用させることができる関数です。

文字列型に変換するstr( )関数を、リストの全ての要素に適用しています。

l = ['xxx', 123, 1.5]

res = '_'.join(map(str, l))
print(res)
# xxx_123_1.5

map関数の使い方については、下記の記事で紹介しています。

map関数の基本的な使い方

スポンサーリンク

-文字列, 文法・環境
-,