配列処理

[Python] リスト(list)のサイズを取得する方法

今回は、Pythonでリストのサイズを取得する方法についてご紹介します。

Pythonのリストサイズを取得する基本

Pythonでは、リストのサイズとは「要素数」のことを指します。

要素数を知ることで、ループの回数を制御したり、処理の分岐に利用したりできます。

ここからは、代表的な取得方法としてlen()関数や、その他の方法を順番に解説します。

代表的な取得方法: len() 関数

Pythonでリストのサイズを取得するときによく使われるのが、len()関数です。

この関数はリストだけでなく、文字列や辞書などのコレクション型にも利用できます。

内部的にはリストが持つ__len__()メソッドを呼び出しているため、処理の計算量はO(1)です。

以下に、len()関数を使った具体例を示します。

実行結果

5
3

このように、len()関数を使うだけでリストのサイズを簡単に取得できます。

大規模なデータを扱う場合でも、リストのサイズ情報を内部的に保持しているため、高速に処理できる点が大きなメリットです。

その他の取得方法

__len__() メソッドの直接呼び出し

len()関数と同じ結果を得る方法として、リストがもつ特殊メソッド__len__()を直接呼び出す手段があります。

以下のように書くと、len()関数と同じ結果を得ることができます。

実行結果

3

ただし、len()関数を使う方が可読性や安全性の面で優れています。

ループを使って手動でカウントする方法

リストの全要素を走査しながら手動でカウントする方法もあります。

実装としてはシンプルですが、要素数が多い場合は時間がかかるため注意が必要です。

実行結果

3

他にも、ジェネレータ式とsum()を組み合わせる方法があります。

実行結果

3

学習目的などでリスト以外のイテラブルなオブジェクトを数えるケース以外では、len()関数を使う方が効率的です。

よくあるエラーや注意点

リストのサイズを取得する上で、以下の点を押さえておくと便利です。

  • len()関数が使えるのはサイズ情報を持つオブジェクトに限られる
  • __len__()の直接呼び出しは可読性に欠ける場合がある
  • 手動カウントは要素数が増えると性能に影響が出る
  • サイズが取れないジェネレータなどではループでカウントが必要

特別な理由がない限り、リストのサイズ取得にはlen()関数を活用するのがおすすめです。

まとめ

Pythonでは、リストのサイズを取得する方法としてlen()関数が最もよく使われます。

__len__()やループを使ったカウントなど他の手段も存在しますが、基本的にはlen()関数が効率と可読性の面で優れています。

用途に応じて、最適な方法を選んでみてください。