📌  相关文章
📜  在 Python 中的数组中查找缺失的数字(1)

📅  最后修改于: 2023-12-03 15:07:47.080000             🧑  作者: Mango

在 Python 中的数组中查找缺失的数字

在数据处理中,有时候需要查找数组中的缺失数字,这可以通过一些简单的方法来实现。本文将介绍在 Python 中如何查找缺失的数字。

方法一:使用 set 函数

使用 set 函数可以创建一个不可变的集合(set),通过求两个集合的差集可以很容易地找出缺失的数字。示例代码如下:

def find_missing_nums(arr):
    full_list = set(range(min(arr), max(arr) + 1))
    return list(full_list - set(arr))

上述代码首先使用 min 和 max 函数获取数组中的最大值和最小值,然后使用 set 函数创建一个从最小值到最大值的完整集合 full_list,最后通过求两个集合的差集来找出缺失的数字。

方法二:使用 enumerate 函数

使用 enumerate 函数可以很容易地遍历数组中的元素,并检查哪些数字未出现。示例代码如下:

def find_missing_nums(arr):
    missing_nums = []
    for i, num in enumerate(arr):
        if i + 1 not in arr:
            missing_nums.append(i + 1)
    return missing_nums

上述代码使用 enumerate 函数返回数组中每个数字的索引和值,然后检查从 1 到数组长度的数字中,哪些数字未出现在数组中,并将它们添加到 missing_nums 数组中。

方法三:使用列表解析

使用列表解析可以在一行代码中找出缺失的数字。示例代码如下:

def find_missing_nums(arr):
    return [i for i in range(1, len(arr) + 1) if i not in arr]

上述代码使用列表解析找出从 1 到数组长度的数字中,哪些数字未出现在数组中。

使用以上三种方法中的任一一种均可快速找出一个数组中的缺失数字,选择哪一种方法根据具体需求而定。