Pythonでリストを扱っていると、「データがいくつ入っているか」を調べたい場面があります。
例えば、買い物リストの商品数を表示したり、リストにデータが入っているか確認したりするときです。
リストの要素数は、主に「len()関数」を使って取得します。この記事では、基本的な使い方から2次元リストを数える方法まで、初心者向けに解説します。
len()でリストの要素数を取得する
リストに入っている要素の数を調べるには、「len()関数」を使います。
# 果物を入れたリスト
fruits = ["りんご", "みかん", "バナナ"]
# リストの要素数を取得
count = len(fruits)
print(count) # 3このリストには3つの文字列が入っているため、実行結果は「3」になります。
「len()」が返すのはリストではなく、要素数を表す整数です。
空のリストの要素数
何も入っていない空のリストに「len()」を使うと、「0」が返されます。
# 空のリストを作成
items = []
# 要素数を確認
count = len(items)
print(count) # 0空のリストでもエラーにはなりません。そのため、データが登録されているかを確認するときにも利用できます。
items = []
# 要素が1つ以上あるか確認
if len(items) > 0:
print("データがあります")
else:
print("データがありません")Pythonでは、次のようにリスト自体を条件式にすることもできます。
items = []
# 空のリストはFalseとして扱われる
if items:
print("データがあります")
else:
print("データがありません")要素数そのものが必要なら「len(items)」、空かどうかだけを知りたいなら「if items」と使い分けると、コードの目的が分かりやすくなります。
追加や削除で要素数は変わる
リストに要素を追加したり、削除したりすると、「len()」が返す値も変化します。
numbers = [10, 20, 30]
# 最初の要素数
print(len(numbers)) # 3
# 末尾に40を追加
numbers.append(40)
print(len(numbers)) # 4
# 10を削除
numbers.remove(10)
print(len(numbers)) # 3「len()」は、実行した時点の要素数を返します。
データが増減するプログラムでも、現在の件数を簡単に確認できます。
len()とcount()の違い
初心者が混同しやすいのが、「len()」と「count()」です。
「len()」はリスト全体の要素数を取得します。一方、「count()」は指定した値がリスト内にいくつあるかを調べます。
numbers = [10, 20, 10, 30, 10]
# リスト全体の要素数
print(len(numbers)) # 5
# 10が入っている個数
print(numbers.count(10)) # 3リスト全体の長さを知りたい場合は「len()」、特定の値だけを数えたい場合は「count()」を使います。
「何を数えるのか」を考えると、2つの違いを判断しやすくなります。
文字列も1つの要素として数えられる
リスト内に長い文字列が入っていても、その文字列全体で1つの要素として数えられます。
words = ["Python", "プログラミング", "初心者"]
# 文字数ではなく、リストの要素数を取得
print(len(words)) # 3
# 最初の文字列の文字数を取得
print(len(words[0])) # 6「len(words)」はリストの要素数を調べています。
一方、「len(words[0])」は、リストの最初にある文字列「Python」の文字数を調べています。
同じ「len()」でも、渡したデータによって何を数えるかが変わる点に注意しましょう。
2次元リストの要素数
リストの中に別のリストが入っているものを、2次元リストと呼びます。
numbers = [
[1, 2],
[3, 4],
[5, 6]
]
# 外側のリストの要素数を取得
print(len(numbers)) # 3数値は全部で6個ありますが、結果は「3」です。
外側のリストから見ると、次の3つがそれぞれ1つの要素として扱われるためです。
[1, 2]
[3, 4]
[5, 6]「len()は、指定したリストの一段目を数える」と考えると理解しやすくなります。
2次元リスト内の全要素を数える
2次元リストの内側にある要素をすべて数えたい場合は、各行の要素数を合計します。
numbers = [
[1, 2],
[3, 4],
[5, 6]
]
# 各行の要素数を合計
total_count = sum(len(row) for row in numbers)
print(total_count) # 6このコードでは、それぞれの内側のリストに「len()」を使い、取得した要素数を「sum()」で合計しています。
内側のリストの長さがそろっていない場合でも計算できます。
numbers = [
[1, 2, 3],
[4],
[5, 6]
]
# 3個、1個、2個を合計
total_count = sum(len(row) for row in numbers)
print(total_count) # 6要素数を条件に使う
「len()」で取得した要素数は、処理を実行するか判断するときにも使えます。
例えば、リストに3件以上のデータがある場合だけ平均値を計算してみましょう。
scores = [80, 75, 90, 85]
# データが3件以上ある場合だけ平均値を計算
if len(scores) >= 3:
average = sum(scores) / len(scores)
print(average) # 82.5
else:
print("データが足りません")要素数は、単に画面へ表示するだけの値ではありません。
「処理に必要なデータがそろっているか」を確認するためにも使えます。これは、エラーや想定外の計算を防ぐうえで大切な考え方です。
最後の要素を取得する場合
リストの要素数を使うと、最後の要素がある位置を計算できます。
fruits = ["りんご", "みかん", "バナナ"]
# インデックスは0から始まるため1を引く
last_index = len(fruits) - 1
print(fruits[last_index]) # バナナただし、最後の要素を取得するだけなら、Pythonでは「-1」を指定するほうが簡単です。
fruits = ["りんご", "みかん", "バナナ"]
# 末尾の要素を取得
print(fruits[-1]) # バナナ「len()で書けるから必ず使う」のではなく、目的に合った読みやすい方法を選ぶことも大切です。
まとめ
Pythonでリストの要素数を取得するには、「len()関数」を使います。
items = ["A", "B", "C"]
# リストの要素数を取得
count = len(items)
print(count) # 3今回のポイントは次のとおりです。
- 「len()」はリスト全体の要素数を取得する
- 空のリストの要素数は「0」になる
- 「count()」は特定の値が入っている個数を調べる
- 2次元リストでは、外側の要素だけが数えられる
- 内側の全要素を数える場合は、各行の長さを合計する
要素数は、データの件数を表示するだけでなく、「処理を始めてもよいか」を判断する材料にもなります。
身近なリストに要素を追加したり削除したりしながら、「len()」の結果がどのように変わるか確認してみましょう。

