Python – リスト内の要素の出現回数を制限する方法
リスト内の各要素の出現回数に上限を設けたい場合、シンプルな反復処理と append メソッドを組み合わせることで簡単に実現できます。この記事では、collections モジュールの defaultdict を使って、各要素が指定した回数を超えて登場しないようにフィルタリングする方法を解説します。
サンプルコード
以下は、リスト内の要素の出現回数を制限する具体的な実装例です。
from collections import defaultdict
my_list = [11, 14, 15, 14, 11, 14, 14, 15, 15, 16]
print("The list is :")
print(my_list)
my_dict = {14 : 3, 11 : 1, 16 : 1, 15 : 2}
print("The dictionary is :")
print(my_dict)
my_result = []
my_def_dict = defaultdict(int)
for element in my_list:
my_def_dict[element] += 1
if my_def_dict[element] > my_dict[element]:
continue
else:
my_result.append(element)
print("The result is :")
print(my_result)実行結果
The list is :
[11, 14, 15, 14, 11, 14, 14, 15, 15, 16]
The restrict dictionary is :
{14: 3, 11: 1, 16: 1, 15: 2}
The result is :
[11, 14, 15, 14, 14, 15, 16]コードの解説
まず、必要なパッケージ(
collectionsモジュールのdefaultdict)を環境にインポートします。整数を格納したリストを定義し、コンソールに表示します。
各要素ごとの出現上限を設定した辞書を定義し、こちらもコンソールに表示します。
結果を格納するための空のリストを用意します。
カウント用として、整数型の
defaultdictを定義します。存在しないキーにアクセスしても自動的に 0 で初期化されるため、カウント処理が簡潔になります。元のリストを順番に反復処理し、各要素の出現回数を 1 ずつ加算していきます。
現在のカウントが許容上限(元の辞書の値)を超えている場合は
continue文によってその要素をスキップします。上限以内であれば、
appendメソッドを使って結果リストに要素を追加します。最終的に、制限が適用されたリストがコンソールに出力されます。
この手法を使えば、重複するデータの中から特定の要素だけを出現回数ベースで間引くことができ、データの前処理やログの整形など、さまざまな場面で活用できます。
-
Pythonのリストで連続する要素をペアにする方法
Pythonでデータ分析を行っていると、リスト内の隣接する(連続する)要素同士をペアとして取り出したい場面に出会うことがあります。本記事では、この処理を実現するための代表的な2つの方法を、サンプルコードとともにわかりやすく解説します。インデックスとrangeを組み合わせる方法まずは、リストの連続するインデックスを組み合わせてペアを作る式を設計する方法です。range関数に「リストの長さ − 1」を渡すことで、ペアリングを繰り返す最大回数を決定します。これにより、最後の要素にアクセスする際に範囲外エラーが発生するのを防いでいます。サンプルコードlistA = [51,23,11,45] # 対象
-
【初心者向け】Pythonでリストのサイズ(要素数)を取得する方法
リスト(list)は、Pythonにおける代表的なコレクション型のデータ構造の一つです。リストの要素は後から変更でき、重複した値を持つこともできます。本記事では、Pythonでリストのサイズ(長さ)を取得する方法を解説します。具体的には、重複の有無にかかわらず、リストに含まれる全要素の数をカウントする方法を紹介します。リストの長さを取得する基本:len()関数Pythonでリストの要素数を取得するには、組み込み関数の len() を使用します。len() はリストだけでなく、タプル・文字列・辞書などさまざまなコレクションに対しても利用できる汎用的な関数です。サンプルコード以下の例では、「day