len
関数はPythonの組み込み関数の1つで、オブジェクトの「長さ」または「要素数」を返す機能を持ちます。
len
は"length"(長さ)の略で、その名が示す通り、あるオブジェクトが持つ要素の数を数える役割を果たします。
len
関数は、多くの異なる種類のオブジェクトに対して使用できます。たとえば、文字列に対してlen
関数を使用すると、その文字列の長さ(すなわち、含まれる文字の数)を返します。リストやタプルに対して使用すると、それらの要素の数を返します。ディクショナリに対して使用すると、キーと値のペアの数を返します。
このページではPythonのlen関数の使い方を1からわかりやすく初心者向けにサンプルコード付きで解説します。
Pythonエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。
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:len関数の使い方
基礎的な知識を学習したところで、最後にlen関数の様々な利用方法を見ていきましょう。
サンプル len
関数とmax
関数を組み合わせる
# 文字列のリストを定義します。 words = ["Python", "は", "とても", "便利な", "プログラミング", "言語", "です。"] # 最も長い文字列を探します。 longest_word = max(words, key=len) print(longest_word) # 出力: "プログラミング"
この例では、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関数のまとめ
始めてPythonを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。
Pythonをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?今すぐ行動したい方は以下の記事をチェック!
読者料典 Python入門:学習カリキュラム ←こちらから!