文字列
公式サイト:
string – 一般的な文字列操作 | Python 3.x ドキュメント [公式]
連結/結合
文字列を +
演算子で連結する。
greeting = "Hello, " + "John"
Code language: Python (python)
join
関数を用いて、間にセパレーターを挟んで配列の内容を連結する。
data = ["foo", "bar", "baz"]
csv = ", ".join(data)
Code language: Python (python)
ドキュメント:
str.join | Python 3.x ドキュメント [公式]
参考:
+ 演算子/join – 文字列を連結/結合 | note.nkmk.me
String Concatenation | W3Schools
スライス
開始位置と終了位置を指定して、文字列をスライスする。
result = str[start:end]
Code language: Python (python)
開始位置を指定して、文字列の最後までスライスする。
result = str[:end]
Code language: Python (python)
終了位置を指定して、文字列の最初からスライスする。
result = str[start:]
Code language: Python (python)
後ろから数えて、文字列をスライスする。
result = str[-start:-end]
Code language: Python (python)
参考:
スライスを使って文字列の指定範囲の部分文字列を取得する | JavaDrive
スライスを用いて文字列の一部を取得/後ろから指定など | Python アカデミー
インデックスやスライスを使って文字列から一部を抽出するには | @IT
分割する
ドキュメント:
str.split | Python 3.x ドキュメント [公式]
参考:
文字列を分割 (区切り文字/改行/正規表現/文字数) | note.nkmk.me
数値を文字列にフォーマットする
数値をキャストして文字列に変換する。
print("No. " + str(num))
Code language: Python (python)
「f 文字列」を使う。
print(f"No. {i:04}")
Code language: Python (python)
ドキュメント:
入力と出力 | Python 3.x ドキュメント [公式]
参考:
Concatenate String and int | JournalDev
string and integer concatenation – Stack Overflow
How can I concatenate str and int objects? – Stack Overflow
Making a string out of a string and an integer – Stack Overflow
format
参考:
format で書式変換/0埋め、指数表記、16進数など | note.nkmk.me
format メソッドを使った文字列の書式設定 | JavaDrive
format メソッド – 文字列フォーマットの使い方 | ガンマソフト株式会社
print で桁数を指定して出力する方法 | HEADBOOST
zfill
指定した桁数となるようにゼロ埋めする。
name = "Object_" + "42".zfill(3)
Code language: Python (python)
ドキュメント:
str.zfill(width) | Python 3.x ドキュメント [公式]
参考:
文字列/数値をゼロ埋め/ゼロパディング | note.nkmk.me
String zfill() Method | W3Schools
文字列の置き換え (str.replace)
ドキュメント:
str.replace | Python 3.x ドキュメント [公式]
参考:
replace / translate / re.sub / re.subn – 文字列を置換 | note.nkmk.me
raw 文字列
クォーテーションの前に r
を付けることでエスケープシーケンスが無効化される。正規表現を記述する際などによく用いられる。
if re.match(r"https:\/\/www\.example.com", url):
print("Yay!")
Code language: Python (python)
ドキュメント:
文字列およびバイト列リテラル | Python 3.x ドキュメント [公式]
参考:
エスケープシーケンスを無視/無効化する raw 文字列 | note.nkmk.me
raw 文字列の利用 – エスケープ文字をそのまま文字列として表現する | iPentec
フォーマット文字列/f 文字列 (f-string)
print(f"My name is {name}.")
Code language: Python (python)
ドキュメント:
フォーマット済み文字列リテラル | Python 3.x ドキュメント [公式]
参考:
f-strings についてしっかり調べてみた – Qiita
f 文字列 – フォーマット済み文字列リテラルの使い方 | note.nkmk.me
f 文字列 – フォーマット済み文字列リテラルを使った文字列の書式設定 | JavaDrive
書式化演算子/パーセント記号
print("My name is %s. I'm %i years old." % (name, age))
Code language: Python (python)
参考:
書式化演算子 % を使った文字列の書式設定/printf 形式の書式化 | JavaDrive
% 演算子を使った古い文字列書式設定 | Snow Tree in June
% 演算子の書式設定において、桁数をアスタリスク (*) で表記する方法 | Snow Tree in June
判定
- 一致:
==
- 不一致:
!=
- 包含:
in
- 非包含:
not in
- 前方一致:
startswith
- 後方一致:
endswith
参考:
Pythonで文字列を比較 (完全一致/部分一致/大小関係など) | note.nkmk.me
パフォーマンス
参考:
f-string と format とパーセント % の書式の速度の比較 – Qiita
数値に変換する
整数に変換する。
index = int("123")
Code language: Python (python)
浮動小数点に変換する。
value = float("1.41421356")
Code language: Python (python)
参考:
文字列を数値に変換して数値と演算する | JavaDrive
大文字小文字を変換する
変換
- capitalize:最初の文字を大文字、残りの文字を小文字に変換する
- casefold:ラテン文字の畳み込みを適用する
- lower:小文字に変換する
- title
- upper:大文字に変換する
判別
- islower
- isupper
- isidentifier
- istitle
ドキュメント:
文字列メソッド | Python 3.x ドキュメント [公式]
参考:
大文字/小文字を操作する文字列メソッド一覧 | note.nkmk.me
lower / upper / capitalize / title / swapcase – 大文字と小文字を変換する | JavaDrive
How do I lowercase a string? – Stack Overflow
改行コードを変換する
CRLF を LF に変換するために、CR を取り除く。
text = text.replace("\r", "")
Code language: Python (python)
参考:
テキストファイルの改行コードを CRLF から LF に変換するには | 山本隆の開発日誌
ファイル読込み時に CRLF が LF になる件 – Qiita
ファイルの改行コードを一括で LF へ変換する | Python と VBA で世の中を便利にする
改行コード LF のテキストファイルを作成する | Python と VBA で世の中を便利にする
バイト列を文字列に変換する (bytes)
ドキュメント:
bytes.decode | Python 3.x ドキュメント [公式]
Unicode How To | Python 3.x ドキュメント [公式]
参考:
bytes 型と str 型の比較と変換方法 | Python Snippets
文字列の str 型と bytes 型のまとめ – Qiita
文字列リテラル
文字列を拡張する f / r / b / u について (Kai) | LSC PSD
エスケープ/エンコード/デコード
ドキュメント:
str.encode | Python 3.x ドキュメント [公式]
bytes.decode | Python 3.x ドキュメント [公式]
Unicode HOWTO | Python 3.x ドキュメント [公式]
参考:
文字列を Unicode エスケープ/アンエスケープした文字列を得る – Qiita
Unicode エスケープされた文字列/バイト列を変換 | note.nkmk.me
encode / decode – 文字列と文字コードを相互に変換 | エンジニアくま Blog
string_escape vs unicode_escape – Stack Overflow
Is there any need of using unicode_escape encoding? – Stack Overflow
unicode_escape without deprecation warning – Stack Overflow
URL エンコード
ドキュメント:
urllib.parse.quote | Python 3.x ドキュメント [公式]
参考:
urllib.parse.quote / unquote – URL エンコード/デコード | note.nkmk.me
マジックコメント
参考:
codecs
ドキュメント:
codecs – codec レジストリと基底クラス | Python 3.x ドキュメント [公式]