Pythonでリストの要素数を取得したい場合はlen()関数を使います。多重リストの場合は、ちょっとした操作が必要なので、それもあわせて解説します。
1. len()関数でリストの要素数を取得
リストの要素数を取得したい時はlen()関数を使います。引数にリストを渡せば、要素数を返してくれます。
nums = [0, 1, 2, 3, 4]
len(nums)
2. 多重リストの要素数の取得
2.1. 外側のリストの要素数を取得
多重リストの場合は、一番外側のリストだけを数えます。
nums_double = [[0, 1, 2], [3, 4, 5], [6, 7], [8, 9]]
len(nums_double)
4と出力されていますが、これは下図のように最も外側の要素を数えているためです。
2.2. 内側のリストの要素数を取得
多重リストの内側のリストの要素数を取得したい時は、len()関数の引数にリストを渡す時に、任意のインデックス番号でスライスします。
以下のコードをご覧ください。
print(nums_double[0])
print(len(nums_double[0]))
「nums_double[0]」で、このリストの一番最初(インデックス番号0番)の要素である[0, 1, 2]を、len()関数の引数に渡しているので3と出力されます。
なお、リストのスライスについては「Pythonのリストのスライスと分割」で解説しています。
次のようにリスト内包表記を使えば、二重リストの内側の要素数を一覧で取得することができます。(リスト内包表記は「Pythonのリスト内包表記の書き方の基本と応用」でご確認ください)。
[len(i) for i in nums_double]
最初は分かりづらいと思うので解説しておきます。
まず、この多重リストをfor文で回すと次のようになります(for文については「Pythonのfor文による繰り返し処理(forループ)の基本」でご確認ください)。
for i in nums_double:
print(i)
リスト内包表記では、このfor文の出力結果に対して「len(i)」を実行しているので、結果、一回のforループごとに、順番に内側のリストの要素数を計算していることになります。
こうしたことは何度もコードを書いているうちに、自然と理解が深まっていきます。
もっと多重のリストになった場合は、forループも多重にすることで対応できます。まず以下のコードはfor文を多重で回しているものです。
nums = [[[1,2, 3], [4, 5]], [[6, 7, 8], [9, 10]], [[11, 12, 13, 14], [15]]]
for i in nums:
for j in i:
print(j)
これをリスト内包表記で次のように書くことで、内側の各リストの要素数を一度に取得することができます。
[len(j) for i in nums for j in i]
3. まとめ
リストの要素数はlen()関数で取得することができます。
len()は、多重リストの場合は、もっとも外側のリストの要素数を取得します。内側のリストの要素数を取得したい場合は、引数にスライスしたリストを渡すことで可能です。
全ての内側のリストの要素数を取得したい場合は、リスト内包表記が便利です。
リスト内包表記には、for文の知識が必要不可欠なので、以下で学んでおきましょう。
コメント
コメント一覧 (1件)
[…] →Pythonのリストの長さ(要素の数)を確認する方法まとめ […]