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

Pythonでリスト内の等しいペアの合計数を求める方法

リストの中に同じ値がいくつペアとして存在するか、その合計数を求めたい場合があります。Pythonでは、set(集合)//(整数除算)演算子、そして反復処理を組み合わせることで、シンプルにこの問題を解決できます。

基本的な考え方は、まずリストをsetに変換して一意な要素だけを取り出し、各要素がリスト内に何回出現するかをcount()メソッドで数え、それを2で割った商(つまりペアの数)を合計していくというものです。

サンプルコード

以下に具体的な実装例を示します。

my_list = [34, 56, 12, 32, 78, 99, 67, 34, 52, 78, 99, 10, 0, 11, 23, 9]
print("The list is :")
print(my_list)

all_elems = set(my_list)
my_result = 0
for elements in all_elems:
   my_result += my_list.count(elements) // 2

print("The total pairs are :")
print(my_result)

出力結果

The list is :
[34, 56, 12, 32, 78, 99, 67, 34, 52, 78, 99, 10, 0, 11, 23, 9]
The total pairs are :
3

コードの解説

  • まずリストを定義し、コンソールに表示します。

  • リストをsetに変換して変数に代入します。これにより重複が取り除かれ、一意な要素だけが残ります。

  • 結果を格納するための変数を0で初期化します。

  • 集合内の各要素に対して反復処理を行い、count()メソッドでその要素の出現回数を取得します。

  • //演算子(整数除算)を使って出現回数を2で割り、ペアの数を算出します。たとえば3回出現する要素は1ペア、4回出現する要素は2ペアとしてカウントされます。

  • 算出したペアの数を結果に加算していき、最終的な合計をコンソールに出力します。

この例では、34・78・99がそれぞれ2回ずつ出現しているため、合計3ペアという結果になります。なお、より大規模なデータを扱う場合は、collections.Counterを使うことで各要素の出現回数を一度に取得でき、パフォーマンス面で有利になります。

  1. Pythonでリスト内の要素の合計を求める3つの方法

    この記事では、Pythonでリスト(イテラブル)内の全要素の合計値を計算する方法について解説します。問題の概要与えられたリストの各要素を足し合わせ、その合計値を求めることが目的です。本記事では、以下の3つのアプローチを順番に紹介します。forループを使用する方法whileループを使用する方法再帰関数を使用する方法方法1:forループを使用するrange()関数でインデックスを生成しながらリストを反復処理し、各要素を順番に加算していきます。コード例# 合計を保持する変数 total = 0 # リストを作成 list1 = [11, 22, 33, 44, 55, 66] # リストを反復処理

  2. Pythonでセットビットをカウントする方法|リスト内包表記とbin()関数の活用

    セットビットとはセットビットとは、数値を2進数で表現したときに「1」になっているビットのことです。本記事では、与えられた10進数の整数に含まれるセットビットの個数を数える方法を解説します。たとえば、53を2進数で表すと「110101」になります。この中で「1」となっているビットは4つあるため、53のセットビット数は4です。# 53 の2進表現: 110101 セットビット数 = 1 の個数 ここでは 4基本の実装手順以下のプログラムでは、まず bin() 関数を使って数値を2進数の文字列に変換します。変換結果には先頭に「0b」というプレフィックスが付くため、スライス操作で最初の2文字を取り除き