Python len()関数は、最もよく使われる関数の1つです。len()関数は、コレクション(リスト、タプル、辞書など)や文字列の長さ、すなわち要素の数を返す関数で、非常にシンプルでありながら便利な機能を提供します。この記事では、Pythonのlen()関数について詳しく解説し、さまざまな活用方法を見ていきます。
目次
len()関数とは?
len()関数は、Pythonでデータ構造の長さを返す関数です。この「長さ」はリスト、文字列、タプル、辞書などで、それぞれの要素が何個あるかを教えてくれます。この関数は非常に直感的で、Pythonコードを簡潔にするため、初心者から熟練した開発者まで幅広く使用されています。
基本的な使い方: len()関数でリスト、タプル、セットの長さを取得する
len()関数の基本的な使い方は非常に簡単です。データを入力するだけで、そのデータの長さを返してくれます。以下のコードでは、listを利用したmy_list, tupleを使用したmy_tupleとsetを利用したmy_setの長さをそれぞれ求めます。
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
len(my_list)
my_tuple = (1, 3, 5, 7)
len(my_tuple)
my_set = {2, 4, 6, 8, 10}
len(my_set)
上記のコードでは、my_listというリストが8つの要素を持っているため、len(my_list)
は8を返します。my_tupleは4つ、my_setは5つの要素を持っているため、それぞれ8, 4と5が返されます。
len()関数で文字列の長さを取得する
len()関数は文字列の長さを取得する際にも便利です。ここでの文字列の長さは、各文字を基準にしてカウントされます。スペース(空白)も1つの文字として含まれます。
Pythonmy_string = "Hello, World!"
len(my_string)
この場合、文字列”Hello, World!”は13個の文字で構成されているため、len()関数は13を返します。ここで重要なのは、スペースも1つの文字としてカウントされる点です。
len()関数で辞書の項目数を取得する
len()関数は辞書の項目数も取得できます。辞書の場合、キーと値のペア(key-value pair)が1つの項目として扱われます。
my_dict = {'a': 1, 'b': 2, 'c': 3}
len(my_dict)
辞書my_dictは3つのキーと値のペアを持っているため、len(my_dict)は3を返します。
len()関数の注意点
リスト内のリストの長さを取得する
もしリストを要素として持つリストがある場合、len()関数は内部リストを1つの要素として認識し、外部リストの長さのみを返します。
nested_list = [[1, 2, 3], [4, 5], [6], [7, 8, 9]]
len(nested_list)
この例では、nested_listというリストが4つの内部リストを持っているため、len(nested_list)
は4を返します。
数値の長さを取得する
len()関数は、Pythonのさまざまなデータ型で動作しますが、整数型(int)や浮動小数点型(float)には使用できません。もし整数や浮動小数点数に対して長さを取得しようとすると、エラーが発生します。
num_int = 12345
num_float = 12.345
len(num_int)
len(num_float)
上記のコードを実行すると、"TypeError: object of type 'int' has no len()"
のようなエラーメッセージが表示され、len()が使用できないことを知らせてくれます。
したがって、数値の長さを取得したい場合には、数値を文字列に変換してから長さを取得する必要があります。
num_int = 12345
num_float = 12.345
len(str(num_int))
len(str(num_float))
上記のコードを実行すると、整数の長さ5と浮動小数点数の長さ6がそれぞれ出力されることが確認できます。
まとめ
len()関数は、Pythonでデータを扱う際に非常に便利なツールです。リスト、タプル、セット、文字列、辞書など、さまざまなデータ構造の長さを取得するために使用され、コードを簡潔で直感的にすることができます。また、カスタムクラスに適用して、オブジェクトの長さを定義する柔軟性もあります。
この関数は非常にシンプルでありながら、よく使われるため、Pythonを初めて学ぶ人から熟練したプログラマーまで幅広く利用されています。len()関数を積極的に使用することで、Pythonコードの可読性が向上し、データ処理が一層便利になるでしょう。