Pythonで配列の要素数を取得する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonで配列の要素数を取得する方法について現役エンジニアが解説しています。Pythonで配列はリストと呼ばれています。len関数で、リストの要素数を取得できますが、多次元配列ではループ文で数えるか、リスト内包表記とsum関数を使う方法があります。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Pythonで配列の要素数を取得する方法について解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonで配列の要素数を取得する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

配列の要素数を取得する

Pythonでは複数の要素をまとめて扱うシーケンスという型が用意されています。
シーケンスは他のプログラミング言語では配列と呼ばれるものです。

Pythonで代表的なシーケンスはリストです。
リストの要素数を取得するにはlen関数を使用します。

例えば以下はlist1というリストの要素数を取得してprint関数で表示させています。

list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8]
print(list1)
print("list1の要素数=", len(list1))

実行結果は以下のようになります。

[0, 1, 2, 3, 4, 5, 6, 7, 8]
list1の要素数= 9

 

2次元配列の要素数を取得する

2次元のリストの要素数を取得するにはどうしたら良いでしょうか?

まずは先程と同じようにlen関数を使ってみましょう。

list2 = [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
print(list2)
print("list2の要素数=", len(list2))

実行結果は以下のようになります。

本来であれば9と表示されて欲しいところが3と表示されてしまいました。
これは「[0, 1, 2]」などの1次元目の塊を1つとして数えているためです。

[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
list2の要素数= 3

それでは全ての要素数を取得するにはどうしたら良いでしょうか。

少々面倒ですがループ文を使用する必要があります。

list2 = [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

count = 0
for item in list2:
  count += len(item)

print(list2)
print("list2の要素数=", count)

実行結果は以下のようになります。

[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
list2の要素数= 9

またはリスト内包表記とsum関数を使っても実現できます。

list2 = [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

count = sum([len(item) for item in list2])

print(list2)
print("list2の要素数=", count)

実行結果は以下のようになります。

[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
list2の要素数= 9

 

[PR] Pythonで挫折しない学習方法を動画で公開中

多次元配列の要素数を取得する

多次元配列についても基本的には同様です。しかし、次元が増えるほど要素数の取得は面倒になります。
可能であればNumpyライブラリを使用しましょう。

まずはリストをNumpy配列(ndarray型)に変換します。ndarray型は、要素数をsizeで取得できます。

import numpy as np

list2 = np.array(list2)

print(list2)
print("list2の要素数=", list2.size)

実行結果は以下のようになります。

[[0 1 2]
 [3 4 5]
 [6 7 8]]
list2の要素数= 9

またndarray型は配列の形をshape関数で確認できます。

print(list2.shape)

実行結果は以下のようになります。1次元目が3、2次元目が3であることが確認できます。

(3, 3)

 

監修してくれたメンター

太田和樹(おおたかずき)

ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント。

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間でPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。