Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python入門】リストのリスト(ネストしたリスト)の長さを取得する方法

はじめに

Pythonでは、リストの中にさらにリストが格納された「ネストしたリスト(リストのリスト)」を扱うことがよくあります。このようなデータ構造の全要素数を取得したい場合、いくつかの方法があります。本記事では、代表的な手法をわかりやすく解説します。

方法1:ネストしたループで要素をカウントする

最も基本的な方法は、二重のforループを使って各サブリストの要素を順番に数えていくことです。

>>> a = [[1, 2, 3], [4, 5, 6]]
>>> c = 0
>>> for x in a:
... for y in x:
... c = c + 1

>>> print(c)
6

この例では、外側のループで各サブリスト [1, 2, 3][4, 5, 6] を取り出し、内側のループでそれぞれの要素をカウントしています。結果として、合計6個の要素があることがわかります。

方法2:sum()とlen()を組み合わせる(推奨)

よりPythonらしい簡潔な書き方は、sum() 関数と len() 関数を組み合わせる方法です。

>>> a = [[1, 2, 3], [4, 5, 6]]
>>> total = sum(len(sublist) for sublist in a)
>>> print(total)
6

このコードでは、各サブリストに対して len() を適用し、その結果を sum() で合計しています。ネストしたループを書く必要がなく、可読性も高いため実務ではこちらが好まれます。

方法3:map()を使った別の書き方

map() を使えば、さらに短く記述することもできます。

>>> a = [[1, 2, 3], [4, 5, 6]]
>>> total = sum(map(len, a))
>>> print(total)
6

map(len, a) によって各サブリストの長さが順に計算され、それらを sum() で合計します。

注意点:len()だけでは不十分

単純に len(a) とすると、返されるのは「サブリストの個数」であり、全要素数ではありません。

>>> a = [[1, 2, 3], [4, 5, 6]]
>>> len(a) # サブリストの個数
2

全要素数を知りたい場合は、必ず各サブリストの長さを合計する必要があります。

まとめ

  • ネストしたforループでも全要素数をカウントできる
  • sum(len(x) for x in a)sum(map(len, a)) の方が簡潔でPythonic
  • len(a) 単体ではサブリストの個数しか取得できない点に注意

用途に応じて最適な方法を選び、ネストしたリストを効率的に扱いましょう。

  1. Pythonリスト入門:作成から操作、削除まで徹底解説

    このチュートリアルでは、Pythonのリスト(List)について学びます。リストの作成方法、要素へのアクセス、要素の追加・削除、リスト自体の削除など、基本的な操作を一つずつ丁寧に解説していきます。 Pythonでは、リストは角括弧 [] を使って構築し、各要素はカンマ , で区切って記述します。 Pythonのリストは、異なる型のオブジェクトを混在させて格納できるのが特徴です。すべて文字列である必要も、整数である必要もありません。例えば、以下のように複数の型が混ざったリストを作成できます。mixedTypesList = [a, True, 1, 1.0] リストの作成方法 リストは、角括弧

  2. Microsoft Listsの使い方完全ガイド|基本操作から便利機能まで徹底解説

    Microsoft Listsとは?Excelに近い新しいMicrosoft 365アプリ Microsoft Listsは、Microsoft 365アプリファミリーに新しく加わったサービスです。名前だけ聞くとOutlook TasksやTo-Do、Plannerの亜種のように思えてしまいがちですが、実際にはこれらのどれよりもExcelに近い、独自性の高いアプリです。 SharePointを基盤とし、WebブラウザからアクセスできるListsは、Airtableのようなローコードソリューションを再現しようとするMicrosoftの試みと言えます。スプレッドシートよりも「アプリらしい」操作性を