note.nkmk.me

Pythonで文字列を連結(結合)

Date: 2018-02-09 / tags: Python, 文字列操作
このエントリーをはてなブックマークに追加

Pythonでの文字列操作において、

  • 複数の文字列を一つの文字列に連結(結合)する方法
  • 文字列のリスト(配列)を一つの文字列に連結(結合)する方法
  • 数値のリスト(配列)を一つの文字列に連結(結合)する方法

を説明する。

複数の文字列を連結(結合)

+演算子で連結

+演算子を使って、文字列の変数および文字列リテラル('...' or "...")を連結できる。

s = 'aaa' + 'bbb' + 'ccc'
print(s)
# aaabbbccc

s1 = 'aaa'
s2 = 'bbb'
s3 = 'ccc'

s = s1 + s2 + s3
print(s)
# aaabbbccc

s = s1 + s2 + s3 + 'ddd'
print(s)
# aaabbbcccddd

数値intfloatを文字列と連結したい場合は、数値をstr()で文字列に変換してから連結する。

s = 'aaa' + str(100) + 'bbb' + str(0.25)
print(s)
# aaa100bbb0.25

文字列リテラルを連続して連結

単純に文字列リテラルを並べて書いてもその文字列リテラルが連結される。

s = 'aaa''bbb''ccc'
print(s)
# aaabbbccc

間にスペースがあってもバックスラッシュ\による改行(継続行と見なされる)があってもOK。

s = 'aaa'\
    'bbb'\
    'ccc'
print(s)
# aaabbbccc

これを利用して長い文字列をコード中で複数行に改行して書くテクニックがある。

文字列の変数に対してはこの書き方はできない。

# s = s1 s2 s3
# SyntaxError: invalid syntax

文字列のリスト(配列)を連結(結合): join()

文字列メソッドjoin()を使うと、文字列のリストを一つの文字列に連結することができる。

書き方は以下の通り。

'間に挿入する文字列'.join([連結したい文字列のリスト])

'間に挿入する文字列'join()メソッドを呼び出し、引数として[連結したい文字列のリスト]を渡す。

空文字列を使えば[連結したい文字列のリスト]が単純連結されるし、カンマ,を使えばカンマ区切りの文字列となり、改行文字\nを使えば文字列要素ごとに改行される。

l = ['aaa', 'bbb', 'ccc']

s = ''.join(l)
print(s)
# aaabbbccc

s = ','.join(l)
print(s)
# aaa,bbb,ccc

s = '-'.join(l)
print(s)
# aaa-bbb-ccc

s = '\n'.join(l)
print(s)
# aaa
# bbb
# ccc

数値のリスト(配列)を文字列として連結(結合): join() + str()

数値のリストを文字列に連結したい場合は、リスト内包表記で各要素にstr()関数を適用して数値を文字列に変換してからjoin()で連結する。

l = [2017, 12, 31]

s = '-'.join([str(n) for n in l])
print(s)
# 2017-12-31

リスト内包表記については以下の記事を参照。

スポンサーリンク
シェア
このエントリーをはてなブックマークに追加

関連カテゴリー

関連記事