Pythonの2つの数字のリストから欠落している数字を見つけるプログラム
nums1とnums2という2つの番号のリストがあるとします。必ずしも一意ではない要素がいくつかあります。しかし、これら2つのリストは、実際には同じ数のセットの異なる順列を表しています。ただし、それらのいくつかが欠落しています。これら2つのリストの欠落している番号を見つけて、すべて印刷する必要があります。
したがって、入力がnums1 =[4,5,8,8,6,9] nums2 =[3,4,4,8,8,8,6,9,5,8]の場合、出力は3はnums1には存在しませんが、nums2には存在するため、[3,4,8,8]になります。 4は両方に存在しますが、nums2には2つの4がありますが、nums1には1つしかないため、1つの4が欠落しています。同様に、nums2には4つの8がありますが、nums1には2つしかないため、2つが欠落しています。
これを解決するには、次の手順に従います-
- c1:=nums1に存在する各要素の頻度を含むリスト
- c2:=nums2に存在する各要素の頻度を含むリスト
- all_nums:=nums1およびnums2からのすべての異なる番号を含むセット
- res:=新しいリスト
- all_numsのnごとに、
- nがc1にない場合は、
- resにn、c2[n]回挿入します
- それ以外の場合、nがc2にない場合は、
- resにn、c1[n]回挿入します
- それ以外の場合、
- c1[n]がc2[n]と同じでない場合、
- nを挿入、| c1 [n]-c2 [n] |解像度への時間
- c1[n]がc2[n]と同じでない場合、
- nがc1にない場合は、
- return res
例
理解を深めるために、次の実装を見てみましょう-
from collections import Counter def solve(nums1, nums2): c1 = Counter(nums1) c2 = Counter(nums2) all_nums = set(nums1) | set(nums2) res = [] for n in all_nums: if n not in c1: res = res + [n]*c2[n] elif n not in c2: res = res + [n]*c1[n] else: if c1[n] != c2[n]: res = res + [n]*abs(c1[n]- c2[n]) return res nums1 = [4,5,8,8,6,9] nums2 = [3,4,4,8,8,8,6,9,5,8] print(solve(nums1, nums2))
入力
[4,5,8,8,6,9], [3,4,4,8,8,8,6,9,5,8]
出力
[3, 4, 8, 8]
-
2つの文字列から珍しい単語を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 2つの文字列が与えられているので、与えられた文字列から珍しい単語を取得する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # uncommon words def find(A, B): # count count = {} # insert in A for word in A.split(): count[word] = coun
-
2つのリストで欠落している値と追加の値を見つけるPythonプログラム?
集合論では、集合Aの補集合はAにない要素を指します。集合Bに対するAの相対的な補集合は、集合AとBの差とも呼ばれます。ここではこの原理を適用します。 Pythonには違いの機能があります。 アルゴリズム Step 1 : first we create two user input list. A & B Step 2 : Insert A and B to a set. Step 3 : for finding the missing values of first list we apply difference function, difference of B from