Python len() 関数: 文字列の長さを調べる方法

⚡ スマートサマリー

Python len() は、文字列の文字数やリスト、タプル、辞書、セットの要素数など、オブジェクト内の項目数を返す組み込み関数です。

  • 🔢 構文: len(object) は引数を 1 つ取り、そのオブジェクトに含まれる要素の総数を表す整数を返します。
  • 🔠 文字列: 文字列の場合、len() 関数はスペース、数字、句読点を含むすべての文字を数えます。
  • 📦 コレクション: len() は、リスト、タプル、辞書、セット、および範囲オブジェクトのサイズを同じ方法で測定します。
  • ⚙️ パフォーマンス: len() は定数 O(1) 時間で実行されます。 Python 各オブジェクトの長さを属性として格納します。
  • 🚫 タイプエラー: 整数型またはNone型に対してlen()を呼び出すと、これらの型には長さがないため、TypeErrorが発生します。
  • 🤖 AI支援: AIコーディングアシスタントはlen()チェックを生成し、機械学習パイプラインはlen()を使用してシーケンスのパディングとバッチ処理を行います。

Python len() 関数

何ですか Python len() 関数?

その len() function は組み込み関数です Pythonlen() 関数を使用すると、文字列、配列、リスト、タプル、辞書などのオブジェクトの長さを取得できます。要素数は毎回再計算されるのではなくオブジェクトに格納されるため、len() を使用するとサイズをすばやく確認し、プログラムのパフォーマンスを最適化できます。

構文 Python len() 関数

その Python len() 関数は、以下の構文を使用します。

len(value)

技術パラメータ

値: 長さを測定したい対象(文字列、リスト、タプル、辞書、セットなど)を指定します。

戻り値

len() は整数を返します。つまり、文字列の文字数、または配列、リスト、コレクションの要素数を返します。戻り値の正確な意味は、渡されるオブジェクトの型によって異なります。

  • 文字列: len() は、句読点、スペース、およびあらゆる種類の特殊文字を含む、文字列内の文字数を返します。
  • 空の: 空の文字列または空のコレクションは、要素がゼロ個であるため、0を返します。
  • コレクション: 組み込み関数 len() は、コレクションに格納されている要素の数を返します。
  • タイプエラー: len() 関数は、渡されるオブジェクトの型に依存します。整数など、長さを持たない値を渡すと、TypeError が発生します。
  • 辞書: 辞書の場合、各キーと値のペアは1つの単位としてカウントされるため、len() はキーの数を返します。

の例 Python len() 関数

以下の例は、len() 関数を使用してさまざまな長さを取得する方法を示しています。 Python 文字列、リスト、タプル、辞書、配列などのオブジェクト。

例1:紐の長さを求める方法

# testing len() 
str1 = "Welcome to  Guru99 Python Tutorials"
print("The length of the string  is :", len(str1))

出力:

The length of the string  is : 35

例2:リストの長さを求める方法

# to find the length of the list

list1 = ["Tim","Charlie","Tiffany","Robert"]

print("The length of the list is", len(list1))

出力:

The length of the list is 4

例3:タプルの長さを求める方法

# to find the length of the tuple

Tup = ('Jan','feb','march')

print("The length of the tuple is", len(Tup))

出力:

The length of the tuple is 3

例4:辞書の長さを調べる方法

# to find the length of the Dictionary

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}

print("The length of the Dictionary is", len(Dict))

出力:

The length of the Dictionary is 4

例5:配列の長さを求める方法

# to find the length of the array

arr1 = ['Tim','Charlie','Tiffany','Robert']

print("The length of the Array is", len(arr1))

出力:

The length of the Array is 4

len() を使わずに文字列の長さを見つける方法 Python

len() 関数は文字列の長さを計測する最も高速で読みやすい方法ですが、文字数を手動で数えることもできます。これはコーディング面接でよく出題される問題で、どの方法も文字列をループ処理しながらカウンターを増やすだけです。

最も一般的な方法は、forループを使用することです。

# length of a string without len()
mystr = "Guru99"
count = 0
for char in mystr:
    count += 1
print("The length is", count)

出力:

The length is 6

より簡潔な方法としては、sum() 関数とジェネレーター式を使用し、文字列の各文字に 1 を加算する方法があります。

mystr = "Guru99"
length = sum(1 for char in mystr)
print("The length is", length)

出力:

The length is 6

len() 関数を使わずに文字数を数える他の方法には、以下のようなものがあります。

  • 文字列が空になるまでスライスし、各スライスごとにカウンターをインクリメントするwhileループ。
  • enumerate() 関数は、 tracks は、反復処理中に各文字のインデックスを取得します。
  • 残りの部分文字列の長さに1を加えた値を返す再帰関数。

これらの手動メソッドは組み込み関数 len() よりも処理速度が遅いため、学習や面接対策にのみ使用してください。日常的なコードでは、len() が最も高速で分かりやすい選択肢です。

どのように Python len()関数は内部的にどのように動作するのか?

len() の仕組みを理解すれば、なぜこんなに速いのかがわかります。オブジェクトに対して len() を呼び出すと、 Python 要素を一つずつスキャンするのではなく、オブジェクトの特別な __len__() メソッドを呼び出します。つまり、式 len(x) は x.__len__() と同等です。

文字列、リスト、タプル、辞書、セットなどの組み込みコンテナは、自身のサイズを属性として格納します。要素を追加または削除するたびに、 Python この関数は、保存されているカウントを更新します。len() が呼び出されると、保存されている値を読み取り、それを返します。

長さが既知であるため、len() は定数時間で実行され、O(1) と表記されます。オブジェクトに 5 つのアイテムが含まれている場合でも、500 万個のアイテムが含まれている場合でも、同じ時間がかかります。また、整数を返す __len__() メソッドを定義することで、独自のクラスに len() のサポートを追加することもできます。

class Team:
    def __len__(self):
        return 11

squad = Team()
print(len(squad))

出力:

11

この設計のおかげで、len() はすべての組み込み型だけでなく、__len__() メソッドを実装するすべてのカスタムオブジェクトにおいても一貫した動作をします。

»詳細 Python 文字列メソッド

よくあるご質問

はい。len() は、スペース、タブ、数字、句読点を含む文字列内のすべての文字をカウントします。たとえば、len(“Guru 99!”) は 8 を返します。これは、スペースと感嘆符がそれぞれ 1 文字としてカウントされるためです。

len() 関数は、空の文字列には文字が含まれていないため、0 を返します。len() 関数はゼロインデックスではなく、1 から要素を数えるため、len(“a”) は 1 を返し、len(“”) は 0 を返します。

整数は複数の要素を格納しないため、長さという概念がありません。len(123) を呼び出すと、「TypeError: object of type 'int' has no len()」というエラーが発生します。桁数を数えたい場合は、まず len(str(123)) で数値を変換してください。

はい。辞書の場合、len() はキーと値のペアの数を返します。各ペアは一度だけカウントされます。セットの場合、len() は一意の要素の数を返します。セットは重複する値を自動的に破棄するためです。

len() 関数は文字列に含まれる Unicode コードポイントの数を返します。そのため、ほとんどのアクセント付き文字や記号は 1 つとしてカウントされます。ただし、一部の絵文字や複合文字は複数のコードポイントを使用するため、len() 関数はそれらに対して 1 つ以上を返す場合があります。

max() 関数にキーとして len を渡します。max(words, key=len) はリスト内の最長の文字列を返します。同様に、min(words, key=len) は最短の文字列を返します。これにより、各長さを比較するための手動ループを作成する必要がなくなります。

機械学習パイプラインでは、データセットのサイズを確認したり、特徴量とラベルが一致しているかを確認したり、シーケンスの長さを測定したりするために、len() 関数が頻繁に使用されます。モデルでは、データのバッチが同じ形状になるように、テキストを len() で等しくパディングまたは切り詰めることがよくあります。

はい。GitHub Copilotは、目的を説明する短いコメントからlen()チェックやカウントループを自動補完します。Agentic AIアシスタントはさらに進んで、長さ検証ロジックの記述、TypeErrorに対するガード句の追加、テストの実行まで行います。