📜  从列表中打印峰值或谷值的Python程序(1)

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

从列表中打印峰值或谷值的Python程序

在数据分析或机器学习中经常需要找到列表中的峰值或谷值。下面是一个Python程序来实现该功能。

程序实现
def find_peak_valley(lst):
    """
    在列表中寻找峰值和谷值

    :param lst: List[int],包含整数的列表
    :return: Tuple[int, int],包含峰值和谷值的元组(如果没有则为None)
    """
    peak = None
    valley = None

    for i in range(len(lst)):
        if i == 0:
            continue
        if i == len(lst) - 1:
            continue
        if lst[i] > lst[i-1] and lst[i] > lst[i+1]:
            peak = lst[i]
        elif lst[i] < lst[i-1] and lst[i] < lst[i+1]:
            valley = lst[i]

    return (peak, valley)

这个函数接受一个包含整数的列表,然后在列表中找到峰值和谷值。它使用一个循环来遍历整个列表,判断每个元素与前一个和后一个元素的关系是否构成峰值或谷值。如果找到峰值或谷值,它们将返回为一个元组。如果没有找到,它们将返回为None。

程序测试

现在,我们可以测试一下上面的程序是否有效。下面是一些测试用例:

# 测试用例
lst = [1, 2, 3, 2, 1]
print(find_peak_valley(lst))  # (3, 1)

lst = [3, 2, 1]
print(find_peak_valley(lst))  # (None, 1)

lst = [1, 2, 3]
print(find_peak_valley(lst))  # (3, None)

lst = [1, 1, 1]
print(find_peak_valley(lst))  # (None, None)

在这个测试用例中,我们传递了不同的列表和期望的峰值和谷值。现在我们可以运行测试代码来看看它们是否输出了期望的结果。

结论

这个Python程序可以有效地找到列表中的峰值和谷值。当你需要找到凸出的高峰或下陷的低谷时,这个程序将非常有用。