Pythonの文字列の使い方を簡単にまとめた

280, 2021-06-29

目次

Pythonの文字列の簡単なまとめ

Pythonでは文字列を扱うことができます。
文字列は基本的なデータ構造の1つでプログラミングでは非常に多用されるデータ型です。

結論から言うとPythonの文字列は↓のように扱います。

s = 'Hello, World!'  # 文字列の作成
print(s)  # 文字列の出力
# Hello, World!

print(s[0])  # インデックスによる参照
print(s[1])  # 同上
# H
# e

print(s[2:8])  # スライスによる範囲抽出
# llo, W

s = s + " Goodbye, World!"  # 文字列同士の連結
print(s)
# Hello, World! Goodbye, World!

s = s.replace('World', 'Alice')  # 文字列の置き換え
print(s)
# Hello, Alice! Goodbye, Alice!

toks = s.split(', ')  # 文字列の分割
print(toks)
# ['Hello', 'Alice! Goodbye', 'Alice!']

s = ' | '.join(toks)  # 文字列をセパレーターで連結
print(s)
# Hello | Alice! Goodbye | Alice!

この記事ではPythonの文字列について簡単にまとめました。
具体的には↓を見ていきます。

  • 文字列とは?

  • 文字列の作成

  • 文字列の出力

  • 文字列を変数に保存

  • インデックスによる文字列の参照

  • スライスによる文字列の範囲抽出

  • 文字列同士の連結、演算

  • 文字列の置き換え(replace)

  • 文字列の分割(split)

  • 文字列をセパレーターで連結(join)

文字列とは?

Pythonの文字列とはPythonの基本的なデータ型の1つです。

文字列とは文字の集まりです。複数の文字が集まって列を作っているので文字列と呼ばれます。
Pythonでは文字列はオブジェクトの1つで、このオブジェクトを作成し、そのオブジェクトの機能を使うことでさまざまな処理が可能です。
たとえば文字列同士の連結、文字列の文字をインデックスで参照、スライス機能で文字列の特定範囲を抽出など。
文字列はPythonではstrというオブジェクトとして扱われます。
strstring(文字列)の略です。

strには多種多様な機能があり、それを全部ここで紹介することはできません。
この記事では比較的に良く使う文字列の機能を簡単にまとめました。

文字列の作成

文字列を作成するにはダブルクオーテーション(")かシングルクオーテーション(')で文字列を囲います。

'Hello, World!'
"Goodbye, World!"

↑の場合、シングルクオーテーションで囲まれた「Hello, World!」が文字列になります。
またダブルクオーテーションで囲まれた「Goodbye, World!」も文字列です。
両者は同じオブジェクトになります。

これを確認するにはtype()でオブジェクトのタイプを出力します。

print(type('abc'))
# <class 'str'>

print(type("def"))
# <class 'str'>

↑を見ると2つとも同じstrオブジェクトであることがわかります。

またstr()を直接呼び出すこともできます。
str()を直接呼び出すと空文字列が作成されます。

s = str() 
print(type(s))
# <class 'str'>
print(s)
# 

文字列の出力

作成した文字列はprint()で標準出力などに出力することができます。

print('Hello, World!')
# Hello, World!

文字列を変数に保存

作成した文字列は変数に保存することができます。

s = 'Hello, World!'
print(type(s))
# <class 'str'>
print(s)
# Hello, World!

↑の場合、sというのが変数です。この変数は文字列になります。

インデックスによる文字列の参照

インデックス(添え字)で文字列を参照すると、そのインデックスに当たる文字を取得することができます。

関連記事
Pythonで文字列抽出【インデックスとスライス】

たとえば「Hello, World!」という文字列では1文字目がHです。
インデックスは0から数えるので、この場合1文字目を参照したい場合は0を指定します。

インデックスの指定は文字列や変数に角カッコ([])を付けます。そしてその角カッコの中に整数を書きます。

s = 'Hello, World!'
print(s[0])
# H

2文字目を参照したい場合は1を指定します。

print(s[1])
# e

よく使われるテクニックとして-1を指定すると、文字列の最後尾の文字にアクセスできます。

print(s[-1])
# !

↑のようにインデックスに負数を指定した場合は文字列の後方から文字が参照されます。

スライスによる文字列の範囲抽出

スライスとは角カッコ([])の中にコロン(:)と整数を書く記法です。

関連記事
Pythonで文字列抽出【インデックスとスライス】

スライスのフォーマットは↓の通りです。

文字列[開始点:終了点:ステップ数]

開始点に切り取りたい文字列の先頭をインデックスで指定します。
終了点には切り取りたい文字列の末尾のインデクスを指定します。
ステップ数は切り取りを実行する間隔を指定します。

s = 'abcdefghi'
print(s[3:6])
# def

↑の場合、s3の位置から6より下までスライスするという感じです。
ステップ数は省略した場合はデフォルトで1になります。

文字列同士の連結、演算

文字列同士は足し算で連結することができます。

s1 = 'abc'
s2 = 'def'
s3 = s1 + s2
print(s3)
# abcdef

また掛け算を使うと、文字列をリピートさせることができます。

s = 'abc' * 3
print(s)
# abcabcabc

文字列の置き換え(replace)

文字列(str)オブジェクトは多数のメソッドを持っていますが、replace()を使うと文字列内の特定の文字列を、別の文字列で置き換えることができます。

s = 'Hello, World!'
s = s.replace('World', 'Alice')
print(s)
# Hello, Alice!

replace()は第1引数の文字列を第2引数の文字列で置き換えます。
その置き換えの結果は返り値として返ってきます。
↑の場合だとsの文字列の中のWorldという文字列をAliceで置き換えています。
その結果をsで受けてprint()で出力しています。

文字列の分割(split)

split()を使うと文字列を特定のセパレーター(区切り文字)で分割することができます。

関連記事
Pythonで文字列を複数の区切り文字で分割(re.split) - なるぽのブログ

s = 'abc,def,ghi'
toks = s.split(',')
print(toks)
# ['abc', 'def', 'ghi'] 

split()の第1引数にはセパレーターを指定します。↑の場合だと,がセパレーターです。
split()の結果はリストで返ってくるので、↑の場合はtoksにその結果を保存しています。

文字列をセパレーターで連結(join)

join()を使うとリストやタプルなどのデータを特定のセパレーターで連結することができます。

関連記事
Pythonのjoinで文字列を結合する

l = ['abc', 'def', 'ghi']
s = ':'.join(l)
print(s)
# abc:def:ghi

join()の結果は文字列で返ってきます。
また連結するリストの中身(要素)は文字列である必要があります。

おわりに

今回はPythonの文字列を簡単にまとめてみました。
ざっとおさらいしたい時にご覧ください。

文字列無しでは生きられない

我々は文字列に支配されている