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 文字列メソッド
