文字列処理

[Python] 文字列の取得はlengthではなくlen関数を使う

今回は、Pythonのlen関数で文字列を取得する方法ついてご紹介します。

len関数とは

Pythonにおいて文字列の長さを取得する際には、len関数を使用します。

他のプログラミング言語ではlengthというプロパティやメソッドを使うことがありますが、Pythonではlengthという名前の組み込みメソッドはありません。

そのため、間違えてtext.lengthのように書くとエラーになるため注意しましょう。

また、len関数は文字列だけでなくリストやタプル、辞書など、さまざまなシーケンス型の要素数を取得できる汎用的な関数でもあります。

len関数の基本的な使い方

ここでは、len関数の基本例と注意点を段階的にご紹介します。

基本例

まずは、最もシンプルな文字列の長さを取得する例です。

実行結果

13

上記の例では“Hello, world!”という文字列の長さを取得しています。

文字数は半角スペースや記号も含めてカウントされるため、結果は13となります。

空文字列の場合

空文字列は、一文字も含まれていない文字列のことです。

len関数で長さを取得すると、必然的に0が返ってきます。

実行結果

0

文字を代入していない空文字列は、データが何もない状態を表します。

ユニコード文字列の場合

日本語をはじめ、多くの文字は実際のバイト数よりも論理的なコードポイント数でカウントされます。

以下の例では日本語を含む文字列の長さを取得します。

実行結果

5

「こんにちは」は5文字なので、結果は5となります。

ただし、絵文字や結合文字など、見た目とコードポイント数が一致しない場合もある点には注意が必要です。

よくあるエラー例

文字列の長さを取得しようとするとき、よく遭遇するエラー例をご紹介します。

  • NameError: name ‘length’ is not defined

    他の言語の感覚でtext.lengthのように書いてしまうと、Pythonではlengthという名前が定義されていないため、このエラーが発生します。

    文字列の長さを取得したい場合はlen(text)を使いましょう。

  • AttributeError: ‘str’ object has no attribute ‘length’

    同じくtext.lengthのように文字列に対してlengthプロパティを呼び出してしまうと、文字列がlengthという属性を持っていないとしてエラーを出します。

  • TypeError: object of type ‘int’ has no len()

    len関数は本来シーケンス型やコレクション型の要素数を数えるための関数です。

    整数のようなシーケンスではない型に対してlenを実行すると、要素数を取得できないためエラーとなります。

まとめ

Pythonで文字列の長さを取得するにはlen関数を使います。

他の言語のようにlengthというプロパティやメソッドはありませんので、注意してください。

エラーを避けるためにも、len関数の正しい使い方をしっかり身につけておきましょう。