Pythonで文字列を扱う際、その「長さ(含まれる文字数)」を知りたい場面は非常に多いです。例えば、パスワードが規定の文字数(8文字以上など)を満たしているか、またはユーザー名が最大文字数(20文字以内など)を超えていないかをチェックする場合などです。
Pythonでは、このようなシーケンスの長さを取得するために、標準の組み込み関数である len() が用意されています。
この記事では、len() 関数を使って文字列の文字数をカウントする方法について解説します。
len() 関数の基本的な使い方
len() 関数は、引数として渡されたオブジェクトの「長さ」や「要素数」を整数(int)で返します。文字列(str)を渡した場合、その文字列に含まれる総文字数を返します。
構文:
len(文字列オブジェクト)
使用例:
# 基本的な文字列
message = "Hello, Python!"
length1 = len(message)
print(f"'{message}' の長さ: {length1}")
# 空の文字列
empty_str = ""
length2 = len(empty_str)
print(f"空の文字列の長さ: {length2}")
実行結果:
'Hello, Python!' の長さ: 14
空の文字列の長さ: 0
len() がカウントするもの
len() 関数は、目に見える文字だけでなく、スペース(空白)、句読点、記号もすべて1文字としてカウントします。
complex_string = "ID: A-001 (Admin)"
count = len(complex_string)
print(f"'{complex_string}' の長さ: {count}")
実行結果:
'ID: A-001 (Admin)' の長さ: 18
この例では、アルファベット、数字、コロン、スペース、ハイフン、丸括弧がすべて1文字としてカウントされ、合計18文字となります。
len() と日本語(マルチバイト文字)
len() 関数の重要な特徴として、日本語(ひらがな、カタカナ、漢字)のようなマルチバイト文字も、1文字として正しくカウントする点が挙げられます。
(一部の古い言語のように、バイト数ではなく文字数を返します。)
# 日本語の文字列
japanese_text = "これはテストです。"
jp_length = len(japanese_text)
print(f"'{japanese_text}' の長さ: {jp_length}")
実行結果:
'これはテストです。' の長さ: 10
「こ」「れ」「は」「テ」「ス」「ト」「で」「す」「。」「(スペース)」がそれぞれ1文字としてカウントされ、合計10文字となっています。
len() は文字列以外にも使える
len() 関数は、文字列(str)専用の関数ではなく、Pythonの「シーケンス」や「コレクション」全般に対して使用できます。
例えば、list(リスト)に使えば要素の数を、dict(辞書)に使えばキーの数を返します。
# リストの要素数をカウント
user_list = ["sato", "suzuki", "tanaka"]
list_count = len(user_list)
print(f"リストの要素数: {list_count}")
# 辞書のキーの数をカウント
config = {"host": "localhost", "port": 8080}
dict_count = len(config)
print(f"辞書のキーの数: {dict_count}")
実行結果:
リストの要素数: 3
辞書のキーの数: 2
まとめ
- 文字列の文字数を取得するには、組み込み関数の
len()を使用します。 len()は、アルファベット、数字、記号、スペース、日本語(マルチバイト文字)をすべて1文字としてカウントします。len()は、文字列だけでなく、リストや辞書など、長さを持つ他のオブジェクトにも使用できます。
