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

Pythonのタプルリストから要素の出現頻度を求める方法

Pythonでは、さまざまな種類のデータコンテナが混在することがよくあります。たとえば、リストの各要素がタプルになっているケースです。本記事では、このような「タプルを要素とするリスト」から、特定の要素が出現する頻度(出現回数)を求める2つの方法を紹介します。

方法1:count() と map() を使う

まず、ラムダ式(lambda)を使ってリスト内の各タプルの先頭要素を取り出し、map() 関数でそれらをまとめたうえで、count() を適用して目的の要素の合計出現回数を取得します。

コード例

# タプルのリストを初期化
listA = [('Apple', 'Mon'), ('Banana', 'Tue'), ('Apple', 'Wed')]

# 元のリストを表示
print("Given list of tuples : ", listA)

# タプルリスト内の要素の頻度を算出
Freq_res = list(map(lambda i: i[0], listA)).count('Apple')

# 結果を出力
print("The frequency of element is : ", Freq_res)

実行結果

上記のコードを実行すると、次のような結果が得られます。

Given list of tuples : [('Apple', 'Mon'), ('Banana', 'Tue'), ('Apple', 'Wed')]
The frequency of element is : 2

この例では、各タプルの1番目の要素('Apple'、'Banana'、'Apple')の中に 'Apple' が2回含まれているため、結果は 2 となります。

方法2:collections.Counter を使う

標準ライブラリの collections.Counter を利用しても、要素の出現回数を簡単にカウントできます。ジェネレータ式(またはforループ)を使って、リスト内の各タプルを順番に処理していきます。

コード例

from collections import Counter

# タプルのリストを初期化
listA = [('Apple', 'Mon'), ('Banana', 'Tue'), ('Apple', 'Wed')]

# 元のリストを表示
print("Given list of tuples : ", listA)

# タプルリスト内の要素の頻度を算出
Freq_res = Counter(i[0] for i in listA)['Apple']

# 結果を出力
print("The frequency of element is : ", Freq_res)

実行結果

上記のコードを実行すると、次のような結果になります。

Given list of tuples : [('Apple', 'Mon'), ('Banana', 'Tue'), ('Apple', 'Wed')]
The frequency of element is : 2

まとめ

どちらの方法でも同じ結果が得られます。count() + map() の組み合わせはシンプルで手軽な一方、Counter を使う方法は複数の要素の頻度を一度に取得したい場合や、データ量が多い場合に効率的です。用途に応じて使い分けるとよいでしょう。

  1. Pythonでタプルのリストからタプルを組み合わせる方法

    データ分析では、Pythonが提供するさまざまなデータ構造を組み合わせて扱うことがよくあります。リストにはタプルを要素として格納できるため、「リストの中にタプルがある」という構造も簡単に作れます。本記事では、タプルの各要素を別の要素と組み合わせて、新しい「タプルの組み合わせリスト」を生成する方法を、具体的なコード例とともに解説します。方法1:forループ(リスト内包表記)を使うまずは最も基本的な方法です。リスト内包表記の中でforループをネストし、各タプルからリスト部分の要素を1つずつ取り出しながら、同じタプル内のもう1つの要素(ここでは曜日の文字列)とペアを作成していきます。コード例Alis

  2. Pythonで辞書をタプルのリストに変換する3つの方法

    Pythonでは、あるコレクション型から別のコレクション型への変換は非常によく行われる操作です。データ処理の要件によっては、辞書に格納されたキーと値のペアを、タプルとしてリストに変換する必要が生じることがあります。この記事では、その実現方法をいくつか紹介します。 items()メソッドとリスト内包表記を使う方法 最もシンプルでPythonらしい方法は、辞書のitems()メソッドをリスト内包表記と組み合わせて使うことです。各キーと値のペアを直接タプル化し、それらをまとめてリストとして生成できます。 サンプルコード Adict = {30:Mon,11:Tue,19:Fri} # 対象とな