【Python】タプルのリスト内の一意なキーの出現回数をカウントする方法
タプルのリストの中に同じキーが何回登場するのか、つまり一意なキーごとの出現回数を調べたいケースはよくあります。このような場合は、リストを反復処理しながら辞書を使って各キーのカウントを記録していくのが一般的なアプローチです。
本記事では、Python標準ライブラリの collections.defaultdict を活用して、タプルのリスト内の一意なキーの出現回数をカウントする方法を、サンプルコードとともにわかりやすく解説します。
サンプルコード
import collections
my_result = collections.defaultdict(int)
my_list = [[('Hello', 'Hey')], [('Jane', 'Will')], [('William', 'John')], [('Hello', 'Hey')], [('z', 'q')]]
print("The list of list is :")
print(my_list)
for elem in my_list:
my_result[elem[0]] += 1
print("The result is : ")
print(my_result)
出力結果
The list of list is :
[[('Hello', 'Hey')], [('Jane', 'Will')], [('William', 'John')], [('Hello', 'Hey')], [('z', 'q')]]
The result is :
defaultdict(<class 'int'>, {('Hello', 'Hey'): 2, ('Jane', 'Will'): 1, ('William', 'John'): 1, ('z', 'q'): 1})
コードの解説
まず、必要なパッケージである
collectionsモジュールをインポートします。次に、文字列を含むタプルを要素とする「リストのリスト」を定義します。この中には重複するタプルも含まれています。
定義したリストをコンソールに表示して、元データを確認できるようにしています。
for文でリストを反復処理し、各要素の最初の要素(タプル)をキーとして、
defaultdictの対応する値を1ずつ加算していきます。defaultdict(int)を使うポイントは、まだ存在しないキーにアクセスした際に自動的に初期値0が設定されるため、KeyErrorが発生せずシンプルにカウント処理を書けることです。最後に集計結果をコンソールへ出力します。実行結果を見ると、
('Hello', 'Hey')は2回出現しているためカウントが2となり、それ以外のタプルは1回ずつしか登場していないためカウントが1になっていることが確認できます。
-
【Python入門】リストから一意の値(重複しない要素)だけを抽出して出力する方法
リストが与えられたとき、その中から重複を除いた一意の値(ユニークな要素)だけを取り出して表示するのが、この記事の目的です。Pythonを使えば、初心者でも簡単に実装できる定番の処理なので、ぜひマスターしておきましょう。実行例入力:A = [1, 2, 3, 4, 2, 1, 9] 出力:[1, 2, 3, 4, 9]リスト内に同じ値が複数回現れていても、出力されるのはそれぞれ1回だけです。アルゴリズムステップ1:ユーザーからリストを入力として受け取る。 ステップ2:空のリストを作成する。 ステップ3:元のリストの全要素を順番に走査する。 ステップ4:その要素がすでに一意のリストに存在するかどう
-
Pythonでべき乗の剰余(mod)を計算するプログラムの書き方
3つの数値 x、y、z が与えられたとき、(x^y) % z を計算するのがこの記事のテーマです。べき乗の結果は指数が大きくなるほど爆発的に増加するため、剰余を取ることで値を扱いやすい範囲に収めることができます。これは競技プログラミングや暗号処理などでもよく使われる基本的なテクニックです。 例 入力:x = 2, y = 3, p = 3 出力:2 解説: 2^3 % 3 = 8 % 3 = 2 となります。 アルゴリズム ステップ1: 3つの数値を入力として受け取る。 ステップ2: pow() 関数でべき乗を計算し、% 演算子で剰余を求める。 ステップ3: 結果を画面に表示する。 サ