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爆速講座

