Search

検索したいワードを入力してください

Pyhtonでリスト(配列)の要素数をカウントする3つの方法

初回公開日:2019年01月24日

更新日:2020年03月13日

記載されている内容は2019年01月24日時点のものです。現在の情報と異なる可能性がありますので、ご了承ください。

また、記事に記載されている情報は自己責任でご活用いただき、本記事の内容に関する事項については、専門家等に相談するようにしてください。

今回の記事では、プログラミング言語であるPythonのリスト(配列)の概念や使い方についてご紹介しています。主に、len()メソッド、count()メソッド、most_common()メソッドを使った要素のや要素の出現回数の数え方が記されています。

リスト(配列)の要素数とは

Pythonのリストとは

リストでは複数のデータを連続的に格納し、各データをその配列の要素といいます。Pythonでいうところのリストとは、他のプログラミング言語でいう配列に似たものとなります。

ただし、配列では要素の各データが同じデータ型でないといけない場合がありますが、リストはあらゆる型のデータを格納することができます。

リストの基本的な構成

Pythonのリストは、[]という括弧で囲まれた中で、それぞれの要素をカンマ(,)で区切られた構成をしています。具体的には以下のようになります。

list = [1,2,3,4]

上記の場合、要素数は4つとなり、要素は順序を持つため、[1]の要素の次は[2]と続きます。リストの要素は異なるデータ型でも問題ないので、以下のように文字と整数を合わせることができます。

list = ["生年月日", 1996,3,9]

リストの中でリストを使用

リストでは、他のリストを要素として持つこともできます。具体的には以下のようになります。

list = [1,[2,3],4]

ここからは、そんなPythonのリストの要素をカウントする方法をご紹介します。

その他の配列操作方法はこちら
Pythonでリストに要素を追加する方法
Pythonでリストの要素を削除する方法
Pythonでリストの結合と分割をする方法

場面別Pythonでリストの要素数をカウントする3つの方法

プログラミング言語をすでに弄ったことがある方は理解があるでしょうが、配列の要素に対して処理を行う機会は多いです。

Pythonにおいても同様であり、リストを構成する要素数のカウントは、必要になってくるでしょう。今回はそれぞれの場面毎に使える3つの方法をご紹介します。

全要素数をカウントするとき

リスト内にある全ての要素数をカウントする関数、len()をご紹介します。

len()の基本的な使い方

len()関数の引数にリストを渡すと、そのリストの全要素数が整数で返されます。

l = [1,2,3,4]
print(len(l))


この場合、len関数の値は4を返します。

また、変数に代入した状態でも、同じように要素数を返すことができます。

l = [1,2,3,4]
l1 = len(l)
print(l1)#->4

二次元配列でlen()を使う場合

リストの中にリストを格納する方法を使うと、構造は二次元配列となり、これをlen関数に与えると、格納されたリストの数を返します。

l2 = [[1,2,3],[4,5,6]]
print(l2)


上記の場合、2を返します。
また、多次元配列の場合についても考えてみましょう。

l3 = [1,[2,3,[20,30,40]],[4,5,6]]
print(l3)


これは要素として格納されたオブジェクトを返すため、値は3となります。1、[2,3,[20,30,40]]、[4,5,6]がそれぞれ配列要素と認識されています。

要素ごとの出現回数をカウントするとき

今回は、指定の値や文字を持つ要素がリスト内にいくつあるのかを調べていきましょう。それぞれの要素が、リスト内で何回出現するのかをカウントする方法を次でご紹介します。

count()メソッドとは

指定された値をもつ要素の要素数を得るためにはリスト型で用意されている countメソッドを使います。countメソッドの引数で指定されたオブジェクトが、リスト内にいくつあるのかという要素数を返します。

count()の使い方

以下で、count()の使い方をご紹介します。

list = ['A', 'A', 'A', 'B', 'C']
print(list.count('A'))



['A']がリスト内に含まれている値、3を返します。


print(list.count('B')


['B']はリスト内に一つしかないので、値は1を返します。


print(list.count('D')


['D']はリスト内に存在していないので、値は0を返します。

出現回数順に要素を取得するとき

リスト(配列)のそれぞれの要素数をカウントし、その出現回数が多い順に並び替える方法があります。その方法は、most_common()メソッドを使って実現できます。

ただ、most_common()メソッドを使うためには、Counterというモジュールを理解しなければいけません。

Counterとは

Counterとは、辞書やリストなど複数の要素を持つ型の数を数え上げるために使うことができるモジュールです。Python標準ライブラリであるcollectionsにCounterクラスがあります。

カウンタとして利用ができます。

from collections import Counter

のように書くことで、利用できます。これはcollectionsの中にあるメソッドとして機能していることを表します。

Counterの使い方

以下でCounterの使い方をご紹介します。

from collections import Counter
list = ['red', 'blue', 'green', 'red', 'red', 'blue']
counter = Counter(list)
print(counter)



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

Counter({'red': 3, 'blue': 2, 'green': 1})

辞書型とは

Counterを使って、辞書型の要素数を数えることができます。Pythonの辞書型とは、[キー]と[値]がセットとなり、その二つのセットを[:]で区切り、全体を{}で囲みます。

以下に基本形を示します。
変数 = {キー1:値1、キー2:値2}

辞書型の要素の数え方

下のサンプルコードで、辞書型の要素数を数えてみます。

list = {'green' : 1, 'blue' : 2, 'red' : 3}
counter = Counter(list)
print(counter)


実行結果
Counter({'red': 3, 'blue': 2, 'green': 1})

このコードでは辞書型オブジェクトを渡しています。そして実行結果は、出現回数の多い順に並び替えられたオブジェクトが返ってきました。

文字列の要素の数え方

今回は、文字列の文字の出現回数を数えてみます。以下にサンプルコードを示します。

word = "countcolor"
print(Counter(word))
print(counter['o'])


実行結果
Counter({'o': 3, 'c': 2, 'l': 1, 'u': 1, 'n': 1, 't': 1, 'r': 1})

3

このように、ワードに含まれる文字の出現回数を数えたり、指定した文字の出現回数を数えたりできます。

most_common()メソッドとは

most_common()メソッドの引数にint型の数字[i]を設定した場合、出現回数が[i]番目に高い要素を返します。何も設定していなければ、すべての要素を出現回数の順番に並び替えたオブジェクトを返します。

most_common()メソッドの基本的な使い方

以下にサンプルコードを示します。

list = ['red', 'green', 'red', 'red']
color = Counter(list)
for w in color.most_common():
print(w)



実行結果
('red', 3)
('green', 1)


上記ではmost_common()に引数は渡していないので、colorのリスト内の全要素が、出現回数が多い順に並び替えた結果が出力されています。

most_common()メソッドに引数を渡す場合

次に、most_common()メソッドに引数を渡した場合はどうなるのか見ていきましょう。

list = ['red', 'green', 'red', 'red']
color = Counter(list)
for w in color.most_common(1):
print(w)


実行結果
('red', 3)

上記ではmost_common()メソッドの引数を1としたため、出現回数が多い上位1を出力しています。

これからPythonのリストを使う人へ

リスト(配列)を構成する要素の要素数を調べる方法をご紹介しました。Pythonのリスト(配列)は、Pythonプログラミングの基本として良く使われます。

これからPythonを使っていく方は、リスト(配列)の要素の出現回数を参照する機会は増えていくので、覚えておいて損はありません。Pythonは比較的扱いやすい言語なので、基本の形さえ覚えてしまえば応用にも利用できます。

Related