用Python从两个数字列表中查找缺失数字的程序

假设我们有两个数字列表,分别是 nums1 和 nums2。有些元素不一定是唯一的。但这两个列表实际上代表了同一组数字的不同排列。但是,其中一些丢失了。我们必须找到这两个列表中缺失的数字并将它们全部打印出来。

因此,如果输入类似于 nums1 = [4,5,8,8,6,9] nums2 = [3,4,4,8,8,8,6,9,5,8],那么输出将是 [3,4,8,8] 因为我们可以看到 3 不在 nums1 中,但它在 nums2 中,所以它丢失了。4 存在于两者中,但在 nums2 中有两个 4,但在 nums1 中只有一个,因此缺少一个 4。类似地,nums2 有四个 8,但在 nums1 中只有 2 个,因此缺少两个。

示例

让我们看看以下实现以获得更好的理解 -

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]

以上是 用Python从两个数字列表中查找缺失数字的程序 的全部内容, 来源链接: utcz.com/z/345679.html

回到顶部