Pythonでタプル内の特定要素の出現回数をカウントする方法を徹底解説
この記事では、ユーザーが入力したタプルの中に、指定した要素が何回出現するかを数えるPythonプログラムを紹介します。初心者にもわかりやすいように、アルゴリズムの手順・サンプルコード・実行結果を順番に解説していきます。
例
入力: A = [10, 20, 30, 40, 10, 100, 80, 10]
X = 10
出力: 3
この例では、リスト(タプル)内に「10」が3つ含まれているため、出力は「3」になります。
アルゴリズム
出現回数をカウントする関数 countoccur(A, x) の処理手順は以下の通りです(Aは配列、xは出現回数を数えたい要素)。
- ステップ1: 同じ要素を数えるためのカウンター変数を用意し、0で初期化します。
- ステップ2: タプルの各要素を先頭から順に走査します。
- ステップ3: 走査中の各要素と x を照合します。
- ステップ4: 要素が x と一致した場合、カウンターを1増やします。
- ステップ5: 最後にカウンター変数の値を返します。
サンプルコード
# タプル内の要素の出現回数を数えるプログラム
def countoccur(A, x):
c = 0
for i in A:
if (i == x):
c = c + 1
return c
# ドライバーコード
A = list()
n1 = int(input("リストのサイズを入力してください:"))
print("リストの要素を入力してください:")
for i in range(int(n1)):
k = int(input(""))
A.append(k)
n = int(input("出現回数を数えたい要素を入力してください:"))
print(n, "の出現回数は", countoccur(A, n), "です")
実行結果
リストのサイズを入力してください:6 リストの要素を入力してください: 12 23 45 12 89 12 出現回数を数えたい要素を入力してください:12 12 の出現回数は 3 です
より簡単な方法:組み込みメソッド count() を使う
Pythonでは、タプルやリストには標準で count() メソッドが用意されており、上記のようなループ処理を自分で書かなくても1行で出現回数を取得できます。
A = (10, 20, 30, 40, 10, 100, 80, 10) print(A.count(10)) # 結果: 3
tuple.count(x) は、指定した要素 x がタプル内に出現する回数を返してくれるため、実際の開発ではこちらを使うのがシンプルでおすすめです。なお、今回紹介した自作関数のアプローチは、タプルだけでなくリストなど他のシーケンス型にもそのまま応用できます。
-
Pythonで配列の反転数(転倒数)をカウントする方法
はじめに この記事では、配列内の反転(インバージョン)をカウントする問題とその解決策について詳しく解説します。 問題定義 問題: リストが与えられたとき、その中に含まれる反転の数をカウントして表示します。 反転数とは、配列を昇順にソートされた状態にするために必要な入れ替え(スワップ)の回数を表す指標です。具体的には、i < j かつ arr[i] > arr[j] を満たす要素のペア(i, j)の総数として定義されます。 実装例 # 反転数をカウントする関数 def InvCount(arr, n): inv_count = 0 for i in range(n
-
Pythonで学ぶ線形探索(リニアサーチ)の基本と実装方法
この記事では、最も基本的な検索アルゴリズムの一つである「線形探索(Linear Search)」の仕組みを理解し、Python 3.xでの実装方法をわかりやすく解説します。 線形探索のアルゴリズム 配列 arr[] の左端の要素から順に、目的の要素 x と各要素を一つずつ比較していきます x がいずれかの要素と一致した場合、そのインデックス(位置)を返します x が配列内のどの要素とも一致しなかった場合、-1 を返すか「要素が見つからない」ことを示します それでは、このアプローチの流れを視覚的に確認してみましょう。 実装例 def linearsearch(arr, x):