Pythonのlen()関数を徹底解説! データ数をサクッと取得する基本から応用まで

Pythonプログラミングで、リストや文字列の要素数を知りたい、辞書のキーの数を確認したい、といった場面は頻繁にありますよね。そんなときに大活躍するのが、Pythonの組み込み関数である**len()関数**です。

この記事では、len()関数の基本的な使い方から、様々なデータ型での適用例、さらには注意点まで、初心者の方にも分かりやすく徹底的に解説します。len()をマスターして、Pythonでのデータ操作をさらに効率化しましょう!


len()関数とは? なぜ使うのか?

len()関数は、オブジェクトの長さ(length)や要素の数を返してくれる、Pythonの非常にシンプルな組み込み関数です。組み込み関数なので、import文を使って何かを読み込む必要はありません。すぐに使うことができます。

なぜlen()を使うのかというと、以下のようなメリットがあるからです。

  • データの量を把握する: リストに何個のアイテムがあるか、文字列が何文字か、辞書にいくつの項目があるかなどを瞬時に知ることができます。
  • ループ処理の制御: forループやwhileループで、データの長さを基準に繰り返し回数を決めたり、インデックスアクセスの上限を設定したりする際に不可欠です。
  • 条件分岐: データが空かどうかを判定したり、特定の長さのデータのみを処理したりする条件を設定するのに役立ちます。

len()関数の基本的な使い方

len()関数の使い方は非常にシンプルです。引数に長さを知りたいオブジェクトを渡すだけです。

構文

Python

len(オブジェクト)

戻り値

引数として渡されたオブジェクトの長さ(要素の数)を整数で返します。


様々なデータ型でのlen()の使い方

len()関数は、Pythonの多くのコレクション型やシーケンス型に対して使用できます。代表的な例を見ていきましょう。

1. 文字列 (str)

文字列中の文字数を数えます。

Python

my_string = "Hello Python!"
print(len(my_string)) # 出力: 13
Code language: PHP (php)

2. リスト (list)

リスト内の要素の数を数えます。

Python

my_list = [10, 20, 30, 40, 50]
print(len(my_list)) # 出力: 5

empty_list = []
print(len(empty_list)) # 出力: 0
Code language: PHP (php)

3. タプル (tuple)

タプル内の要素の数を数えます。

Python

my_tuple = ("apple", "banana", "cherry")
print(len(my_tuple)) # 出力: 3
Code language: PHP (php)

4. 辞書 (dict)

辞書内のキーと値のペア(項目)の数を数えます。

Python

my_dict = {"name": "Alice", "age": 25, "city": "New York"}
print(len(my_dict)) # 出力: 3
Code language: PHP (php)

5. セット (set)

セット内のユニークな要素の数を数えます。

Python

my_set = {1, 2, 3, 3, 4} # 3は重複しているが、セットでは1つとして扱われる
print(len(my_set)) # 出力: 4 (1, 2, 3, 4の4つ)
Code language: PHP (php)

6. その他のイテラブル

len()関数は、__len__メソッドを持つ任意のオブジェクトで使用できます。例えば、rangeオブジェクトやユーザー定義のクラスでも使用可能です。

Python

my_range = range(1, 10) # 1から9までの数 (9個)
print(len(my_range)) # 出力: 9
Code language: PHP (php)

len()を使う際の注意点

1. 数値型や真偽値には使えない

len()関数は、数値(int, floatなど)や真偽値(bool)のような、長さを持たないオブジェクトには使用できません。TypeErrorが発生します。

Python

# print(len(123)) # TypeError: object of type 'int' has no len()
# print(len(True)) # TypeError: object of type 'bool' has no len()
Code language: PHP (php)

2. イテレータには使えない(直接は)

イテレータ(iterator)は、要素を一度にすべてメモリに保持するわけではないため、len()を直接適用することはできません。TypeErrorが発生します。イテレータの要素数を数えたい場合は、リストなどに変換してからlen()を使う必要がありますが、これはメモリを多く消費する可能性があるため注意が必要です。

Python

# my_generator = (i for i in range(5))
# print(len(my_generator)) # TypeError: object of type 'generator' has no len()

# 正しい方法(ただし、イテレータ全体を消費する)
# my_generator = (i for i in range(5))
# print(len(list(my_generator))) # 出力: 5
Code language: PHP (php)

len()関数の応用例

1. データが空かどうかを判定する

データが空かどうかをlen()を使って簡単に判定できます。

Python

data = []
if len(data) == 0:
    print("データは空です。")
Code language: PHP (php)

ヒント: Pythonでは、空のコレクション(リスト、タプル、辞書、セット、文字列など)は論理値としてFalseと評価されるため、より簡潔に書くこともできます。

Python

data = []
if not data: # dataが空ならTrue
    print("データは空です。")
Code language: PHP (php)

2. ループ処理でのインデックスアクセス

forループで要素とインデックスを同時に扱いたい場合によく使われます。

Python

fruits = ["apple", "banana", "orange"]
for i in range(len(fruits)):
    print(f"Index {i}: {fruits[i]}")
# 出力:
# Index 0: apple
# Index 1: banana
# Index 2: orange
Code language: PHP (php)

ヒント: enumerate()関数を使うと、よりPythonicに書けます。

Python

fruits = ["apple", "banana", "orange"]
for i, fruit in enumerate(fruits):
    print(f"Index {i}: {fruit}")
Code language: PHP (php)

まとめ

len()関数は、Pythonプログラミングにおいて非常に頻繁に利用される、基本的かつ強力なツールです。

  • 文字列、リスト、タプル、辞書、セットなど、様々なコレクションの要素数や長さを取得できます。
  • 戻り値は整数です。
  • 数値型やイテレータなど、長さを持たないオブジェクトには使用できません
  • データが空かどうかの判定や、ループ処理での制御など、多くの場面で役立ちます

len()関数を適切に使いこなすことで、あなたのPythonコードはより読みやすく、効率的になるでしょう。ぜひ今日学んだことを、あなたのコーディングに活かしてみてください!


■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■AI時代の第一歩!「AI駆動開発コース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<月1開催>放送作家による映像ディレクター養成講座

<オンライン無料>ゼロから始めるPython爆速講座