Discuss / Python / 使用迭代查找一个list中最小和最大值,并返回一个tuple

使用迭代查找一个list中最小和最大值,并返回一个tuple

Topic source

哎呀博雅

#1 Created at ... [Delete] [Delete and Lock User]
# -*- coding: utf-8 -*-
def findMinAndMax(L):
    if L:#L值非0执行
        mymin = mymax = L[0]
        for x in L:
            if x > mymax:#找最大值,X大于L第一个元素时
                mymax = x
            elif x < mymin:#找最小值,X小于L第一个元素时
                mymin = x
        return (mymin, mymax)#返回mymin和mymax值
    else:#L值为0时执行
        return (None, None)

# 测试
if findMinAndMax([]) != (None, None):
    print('测试失败!')
elif findMinAndMax([7]) != (7, 7):
    print('测试失败!')
elif findMinAndMax([7, 1]) != (1, 7):
    print('测试失败!')
elif findMinAndMax([7, 1, 3, 9, 5]) != (1, 9):
    print('测试失败!')
else:
    print('测试成功!')

RUN 测试成功!

卡半天,我一直在琢磨,每一步比对7=7,不大于也不小于 要不要单独在写一个相等的情况,……试着调试执行后发现,我想多了,程序遍历会一个一个自己去比对。

发现学习真是不能想太多,知道要干啥,一步一步先写出来在说,调用几次测试下琢磨琢磨基本就明白了,之后遇到同类情况,直接避坑一顿狂敲。


  • 1

Reply