• Xでシェア
  • LINEでシェア
  • このエントリーをはてなブックマークに追加

【Python】lenの使い方

この記事のポイント

  • len関数の基本的な使い方と仕組み
  • 各種データ型(文字列、リスト、タプル、辞書、セット、バイト列など)に対する活用法
  • lenによる長さの取得例(文字列、リスト、タプル、辞書、セット)     
  • カスタムクラスにおけるlenの実装方法
  • len関数のパフォーマンス特性

目次

Pythonにおけるlenとは?

Pythonにおけるlen(len関数)は、Pythonに標準で用意されている**組み込み関数(built-in function)で、文字列(string)、リスト(list)、タプル(tuple)辞書(dictionary)、集合(set)などのオブジェクトの長さ(サイズ)を取得するために使用されます。

len関数は、Pythonにおける基本関数の一つです。データ処理やループ処理の前に、対象サイズを知りたい場合によく使用されます。構文がシンプルで覚えやすく、初心者から上級者までが日常的に使える便利なツールです。

len関数の内部では、Pythonのオブジェクトが持つ特殊メソッド __len__() を呼び出しています。 len(obj)は実質的にobj.len()と同等です。しかし、これらは組み込み関数として提供されているため、len関数を使えばより直感的なコード設計が可能となります。

len関数の大きな特徴は、O(1)の時間複雑度で動作することです。

これは、オブジェクトのサイズがどれだけ大きくても、常に一定の時間で結果を返すことを意味します。例えば、100万要素のリストでも、1要素のリストでも、長さを取得する速度は基本的に同じです。

文字列、リスト、タプル、辞書、セットといったPythonの主要なデータ型は、そのすべてでlen関数をサポートしています。また、自作のクラスでも__len__() メソッドを実装することで、len関数から長さを取得できるようになります。

【関連】
Pythonをもっと詳しく学ぶならpaizaラーニング

基本構文

Python lenの基本構文は、以下のとおりです。

len(オブジェクト)

実際のコード例を見てみましょう:

# 基本的な使用例 text = "イヌとネコ" animals = ["イヌ", "ネコ", "ウサギ"] print(f"文字列の長さ: {len(text)}") print(f"リストの要素数: {len(animals)}")

実行結果:

文字列の長さ: 5
リストの要素数: 3

上記のコードでは、文字列とリストの長さを取得しています。文字列の場合は文字数を、リストの場合は要素数を返します。lenは異なるデータ型に対して適切な「長さ」を示す役割を担うため、非常に汎用性の高い関数となります。

実用例

このセクションでは、わかりやすいシナリオに基づく実用的なコード例を通して、len関数の具体的な使い方を紹介していきます。

実用例をひと通り確認したあとは、ぜひとも自分のプログラムに各コードを実装してみましょう。また、「こんな文字列の長さを計測したい」や「こんな出力結果にしてみたい」といった想いがあれば、サンプルコードをどんどんアレンジしていくことがおすすめとなります。

コードにたくさん触れると、len関数の理解が深まることに加えて、各場面で最適な選択をするための思考力などが身についてきます。Pythonのプログラミング力を総合的に高めるためにも、これから紹介するコードを積極的に活用してみてください。

文字列の長さを取得

文字列の長さ(文字数)を取得するのは、len関数の基本的な使用方法です。以下の例では、文字列内の文字数をカウントし、入力検証や制限を設けるケースを示しています。

len関数では、日本語などのマルチバイト文字も1文字としてカウントします。国際的なアプリケーション開発でも安心です。

animal = "イヌ" message = f"私の好きな動物は{animal}です" print(f"メッセージ: {message}") print(f"文字数: {len(message)}")

実行結果:

メッセージ: 私の好きな動物はイヌです
文字数: 12

リストの要素数を計測

リストの要素数を取得するコード例です。配列の処理前に要素数を確認したり、空のリストかどうかをチェックしたりする場合に、便利なコードパターンになります。リストの要素数は、ループ処理の回数制御や配列操作の条件分岐でよく使われます。

animals = ["イヌ", "ネコ", "ウサギ", "ハムスター"] print(f"動物リスト: {animals}") print(f"登録されている動物の数: {len(animals)}")

実行結果:

動物リスト: ['イヌ', 'ネコ', 'ウサギ', 'ハムスター']
登録されている動物の数: 4

タプルの長さを取得

タプルの要素数も同様にlenで取得できます。タプルは不変(イミュータブル)なリストのようなものであり、データのグループ化で使われることが多いです。要素数の取得方法はリストと同じですが、タプルの特性を理解しておくことも大切になります。

animal_info = ("イヌ", 3, "オス", 12.5) # (種類, 年齢, 性別, 体重) print(f"動物情報: {animal_info}") print(f"情報項目数: {len(animal_info)}")

実行結果:

動物情報: ('イヌ', 3, 'オス', 12.5)
情報項目数: 4

辞書のキー数を取得

辞書(ディクショナリ)におけるキーの数を取得するコード例です。len関数は、辞書に含まれるキーと値のペアの数を返します。データベースのようなキーと値のマッピングを扱う際に、登録されているエントリ数を把握するうえで役立つ仕組みでしょう。

animal_ages = {"イヌ": 3, "ネコ": 5, "ウサギ": 2} print(f"動物年齢辞書: {animal_ages}") print(f"登録されている動物の種類数: {len(animal_ages)}")

実行結果:

動物年齢辞書: {'イヌ': 3, 'ネコ': 5, 'ウサギ': 2}
登録されている動物の種類数: 3

集合の要素数を計測

セット(集合)の要素数を取得するコード例です。セットは重複を許さないコレクションであり、ユニークな値のみを保持します。同じ値が複数回登場する場合でも、一度しかカウントされない点が特徴的です。

animals = {"イヌ", "ネコ", "イヌ", "ウサギ", "ネコ"} print(f"動物の集合: {animals}") print(f"ユニークな動物の数: {len(animals)}")

実行結果:

動物の集合: {'ウサギ', 'ネコ', 'イヌ'}
ユニークな動物の数: 3

バイト列の長さを取得

バイト列(bytes)のサイズを取得するコード例です。バイト数はファイル処理やネットワーク通信でよく使われます。文字列とは異なりバイト単位でのサイズを返すため、文字エンコーディングを意識する必要があります。

文字エンコーディングとは、文字テキストに対して「どのような文字コードを使用し、どのような形式で表示するか?」ということです。

animal_bytes = "イヌ".encode("utf-8") print(f"バイト表現: {animal_bytes}") print(f"バイト数: {len(animal_bytes)}")

実行結果:

バイト表現: b'\xe3\x82\xa4\xe3\x83\x8c'
バイト数: 6

range生成数を確認

range関数で生成される数列の長さを取得するコード例です。繰り返し処理で使うrangeオブジェクトの範囲を確認するうえで、便利なコードパターンになります。生成される数列の要素数が事前にわかるため、ループの回数制御で活用可能です。

numbers = range(1, 10, 2) # 1から始めて2ずつ増加、10未満まで print(f"生成される数列: {list(numbers)}") print(f"要素数: {len(numbers)}")

実行結果:

生成される数列: [1, 3, 5, 7, 9]
要素数: 5

カスタムクラスでの実装

自作クラスでlen関数をサポートする場合は、__len__メソッドを実装します。この例では動物コレクションクラスを作成し、内部リストの要素数を返すようにしています。Pythonの特殊メソッドを理解し、自作クラスを標準的に振る舞わせる良い事例です。

class AnimalCollection: def __init__(self): self.animals = [] def add(self, animal): self.animals.append(animal) def __len__(self): return len(self.animals) collection = AnimalCollection() collection.add("イヌ"); collection.add("ネコ") print(f"コレクションの要素数: {len(collection)}")

実行結果:

コレクションの要素数: 2

まとめ

Pythonのlen関数は、len関数は、あらゆるデータ構造において長さの取得を簡潔かつ効率的に行える基本関数です。
文字列、リスト、タプル、辞書、セットなどの主要なオブジェクトに対応しており、構文もシンプルで覚えやすいため、初心者から上級者まで幅広く利用されています

len関数の大きな特徴は、O(1)の時間複雑度で動作するため、大規模データでも高速に結果を返せる点です。こうした特徴から、空のコレクションのチェックや、文字数制限の検証といった日常的なコーディングで頻繁に活用されています。

また、自作クラスに__len__()を実装すれば、len関数を通して直感的なインターフェースを構築することが可能です。

len関数は、Pythonプログラミングでデータ構造を扱ううえで必須の関数といえそうです。プログラミング初心者の方は、早めにlen関数をマスターしてみてください。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. Pythonのリファレンス記事一覧
  4. 【Python】lenの使い方