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

Pythonで類似するタプルの出現回数を記録・集計する方法


Pythonでリスト内に含まれる「似たようなタプル」の出現回数を記録したい場合には、map関数、Counterクラス、そしてsorted関数を組み合わせるのが効果的です。

まず前提として、リストは異種の値(整数、浮動小数点数、文字列など、あらゆるデータ型の値)を格納できるデータ構造です。「タプルのリスト」とは、リストの中に複数のタプルが格納されたものを指します。

使う機能とそれぞれの役割

map関数

map関数は、指定した関数や処理をイテラブル(リストやタプルなど)のすべての要素に対して適用し、その結果を返します。

sorted関数

sorted関数は、リストなどの要素を並べ替えるために使用されます。今回のようにタプル内の要素を昇順にソートすることで、「同じ要素を持つが並び順が異なるタプル」も同一のものとして扱えるようになります。

Counterクラス

Counterはcollectionsモジュールのサブクラスで、ハッシュ可能なオブジェクトの出現回数を数えるためのものです。呼び出されると、渡されたイテラブル(リストやタプルなど)をもとに自動的にハッシュテーブルを作成します。

結果として、カウントがゼロでないすべての要素とその出現回数を返します。

サンプルコード

from collections import Counter

my_list_1 = [(11, 14), (0, 78), (33, 67), (89, 0)]

print("タプルのリスト:")
print(my_list_1)

my_result = dict(Counter(tuple(elem) for elem in map(sorted, my_list_1)))
print("類似タプルの出現頻度:")
print(my_result)

実行結果

タプルのリスト:
[(11, 14), (0, 78), (33, 67), (89, 0)]
類似タプルの出現頻度:
{(11, 14): 1, (0, 78): 1, (33, 67): 1, (0, 89): 1}

コードの解説

  • 必要なパッケージとして、collectionsモジュールからCounterをインポートします。
  • タプルのリストを定義し、コンソールに表示します。
  • map(sorted, my_list_1)により、リスト内の各タプルの要素が昇順に並べ替えられます。これにより、例えば(89, 0)(0, 89)として扱われ、並び順の違いによる重複を吸収できます。
  • 並べ替え後のタプルに対してCounterを適用することで、各タプルの出現回数を集計します。
  • その結果をdictに変換し、変数に代入します。
  • 最後に、集計結果をコンソールに表示します。

このように、sorted → map → Counter の流れを組み合わせることで、要素の並び順に左右されずに「類似するタプル」の出現頻度を簡単に集計できます。データの前処理や重複分析など、さまざまな場面で応用できるテクニックです。

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

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

  2. 【Python入門】リスト・タプル・辞書の違いを徹底解説

    Pythonの3大コレクション:リスト、タプル、辞書 Pythonには複数のデータをまとめて扱うためのコレクション型が用意されています。中でもよく使われるのがリスト(list)、タプル(tuple)、辞書(dict)の3つです。それぞれ特徴が異なるため、用途に応じて使い分けることが重要です。 基本的な違いの概要 リストとタプルはシーケンス(順序付き)オブジェクトであり、要素を順番に並べて管理します。一方、辞書はキーと値のペアを格納するハッシュテーブル構造です。 リストとタプルは「順序を持つコレクション」ですが、辞書は「順序を持たないコレクション」として扱われます。 リストと辞書はミュータブ