PR

【Python】len関数の使い方を1分でわかりやすく解説

Python

len関数はPythonの組み込み関数の1つで、オブジェクトの「長さ」または「要素数」を返す機能を持ちます。

lenは"length"(長さ)の略で、その名が示す通り、あるオブジェクトが持つ要素の数を数える役割を果たします。

len関数は、多くの異なる種類のオブジェクトに対して使用できます。たとえば、文字列に対してlen関数を使用すると、その文字列の長さ(すなわち、含まれる文字の数)を返します。リストタプルに対して使用すると、それらの要素の数を返します。ディクショナリに対して使用すると、キーと値のペアの数を返します。

このページではPythonのlen関数の使い方を1からわかりやすく初心者向けにサンプルコード付きで解説します。

このページで学べる内容
  • len関数の使い方
  • len関数の高度な使い方・注意点

Pythonエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。

参考 Pythonの基本的な書き方・構文ルール

スポンサーリンク

Python:len関数とは?

Pythonのlen関数は、組み込み関数の一つで、様々な型のデータ(文字列、リスト、タプル、ディクショナリなど)の長さや要素数を数えるための関数です。

名前の由来は "length"(長さ)から来ており、データの「長さ」を取得するというその機能を端的に表しています。

Pythonのlen関数は非常に直感的で使いやすいです。基本的な使用法は、len()という形式で、括弧の中に長さを知りたいオブジェクトを入れるだけです。

s = "Hello, World!"
print(len(s))  # 出力: 13

参考 print関数

このコードは、文字列sの長さを返しそれを出力します。この場合、空白と句読点も含めて計算されます。

len関数は文字列だけではなく、リストとタプルの要素数を取得することもできます。

list_example = [1, 2, 3, 4, 5]
tuple_example = (1, 2, 3, 4, 5)
print(len(list_example))  # 出力: 5
print(len(tuple_example))  # 出力: 5

参考 リスト / タプル

同様に、辞書(ディクショナリ)の要素数を取得することももちろん可能です。

dict_example = {"apple": 1, "banana": 2, "cherry": 3}
print(len(dict_example))  # 出力: 3

参考 辞書(ディクショナリ)

この場合、len関数は辞書(ディクショナリ)のキーと値のペアの数を返します。

len関数の使用法はこれだけです。非常にシンプルで理解しやすい関数なので、Pythonを使用する際に頻繁に利用されます。次の章では、len関数の内部的な動作や、いくつかの高度な使用法について詳しく解説していきます。

Python:len関数を利用する際の注意点

len関数の使用法はシンプルですが、いくつか注意点も存在します。

len関数は案外奥が深いので、この章で詳しく学習しておきましょう。

len関数の注意点1:数値やNoneなどには利用できない

len関数は主にシーケンス(文字列、リスト、タプルなど)やマッピング(ディクショナリ)のような、長さや要素数が定義できるオブジェクトに対して使用されます。したがって、数値やNoneなど、長さや要素数が定義できないオブジェクトに対してlen関数を適用しようとすると、Pythonはエラーを返します。

例えば、次のコードでは整数123に対してlen関数を呼び出そうとしていますが、エラーが発生します。なぜなら、整数はその"長さ"が定義できないからです。

print(len(123))  # TypeError: object of type 'int' has no len()

len関数の注意点2:カスタムクラスに対する仕様

len関数はカスタムクラスに対しても適用可能ですが、そのためにはそのクラスが__len__メソッドを実装している必要があります。この__len__メソッドはオブジェクトの"長さ"を定義します。

例えば、次のコードでは、MyClassクラスに__len__メソッドが実装されていないため、そのインスタンスに対してlen関数を呼び出すとエラーが発生します。

class MyClass:
    pass

my_instance = MyClass()
print(len(my_instance))  # TypeError: object of type 'MyClass' has no len()

参考 Pythonのクラスの基本

Python:len関数の使い方

基礎的な知識を学習したところで、最後にlen関数の様々な利用方法を見ていきましょう。

サンプル len関数とmax関数を組み合わせる

# 文字列のリストを定義します。
words = ["Python", "は", "とても", "便利な", "プログラミング", "言語", "です。"]

# 最も長い文字列を探します。
longest_word = max(words, key=len)

print(longest_word)  # 出力: "プログラミング"

参考 Pythonの変数の使い方

この例では、len関数とmax関数を組み合わせて、文字列のリストから最も長い文字列を探しています。max関数のkey引数にlen関数を渡すことで、各文字列の長さを比較して最も長い文字列を返します。

サンプル len関数とmap関数を組み合わせる

# 文字列のリストを定義します。
words = ["Python", "は", "とても", "便利な", "プログラミング", "言語", "です。"]

# 各文字列の長さを取得します。
lengths = list(map(len, words))

print(lengths)  # 出力: [6, 1, 3, 4, 6, 2, 3]

この例では、len関数とmap関数を組み合わせて、文字列のリストから各文字列の長さを取得しています。map関数にlen関数と文字列のリストを渡すことで、各文字列にlen関数を適用した結果を取得します。

サンプル len関数を使用した条件付きリスト内包表記

# 文字列のリストを定義します。
words = ["Python", "は", "とても", "便利な", "プログラミング", "言語", "です。"]

# 長さが4文字以上の文字列だけを抽出します。
long_words = [word for word in words if len(word) >= 4]

print(long_words)  # 出力: ['Python', 'とても', '便利な', 'プログラミング']

この例では、len関数を使用した条件付きリスト内包表記を使用して、文字列のリストから長さが4文字以上の文字列だけを抽出しています。リスト内包表記にif len(word) >= 4という条件を追加することで、この条件を満たす文字列だけが新しいリストに含まれます。

これらの例からわかるように、len関数はPythonの他の組み込み関数や特性と組み合わせて非常に強力なツールとなります。また、これらの高度な使用法を理解することで、Pythonプログラミングの幅が広がります。

Python:len関数のまとめ

len関数の使い方
  • len関数はPythonの組み込み関数で与えられたオブジェクトの「長さ」または「要素数」を返す
  • len関数は様々な型のオブジェクトに対して使用することができる
    • 文字列の場合len関数はその文字数(スペースや句読点も含む)を返す
    • リスト、タプル、ディクショナリの場合、len関数はその要素数を返す
  • カスタムクラスについては__len__メソッドを定義することでlen関数を適用可能
# 文字列の長さを取得
print(len("こんにちは"))  # 出力: 5

# リストの要素数を取得
print(len([1, 2, 3, 4, 5]))  # 出力: 5

# タプルの要素数を取得
print(len(("apple", "banana", "cherry")))  # 出力: 3

# ディクショナリのキーの数を取得
print(len({"name": "John", "age": 30, "city": "New York"}))  # 出力: 3

# 出力: 13 (スペースやカンマもカウント)
print(len("Hello, World!")) 

# タプルの例
print(len((1, 2, 3, 4, 5)))  # 出力: 5

# ディクショナリの例
print(len({"apple": 1, "banana": 2, "cherry": 3}))  # 出力: 3

# カスタムクラスでの利用例
class MyClass:
    def __init__(self, elements):
        self.elements = elements

    def __len__(self):
        return len(self.elements)

my_instance = MyClass([1, 2, 3, 4, 5])
print(len(my_instance))  # 出力: 5

始めてPythonを勉強するのは結構難しいですよね。

でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。

Pythonをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?今すぐ行動したい方は以下の記事をチェック!

読者料典 Python入門:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
Python
シェアする
ビズドットオンラインをフォローする
blank
ビズドットオンライン
タイトルとURLをコピーしました