从python中没有max()函数的数组中获取最大值

时间:2014-07-20 11:50:33

标签: python function max

我想从整数数组中选择最大值数。这在python中非常简单。

arr = [10,40,30,326,673]
print(max(arr))

但我真的想知道这个max()函数的幕后故事。这如何从数组中提取最大值? 如何手动从数组中提取最大值? 这是我的完整代码:

stdName = ["X"]
stdMark = [0]
Pass = ", Passed"
Fail = ", Failed"
stdNum = int(input("Enter number of students: "))
while len(stdMark) <= stdNum:
    name = input("Enter student name: ")
    mark = int(input("Enter student mark: ")
    if mark < 0 or mark > 100:
        print("Enter mark between 0 to 100")
    else:
        stdName.append(name)
        stdMark.append(mark)
for i in range(1,stdNum+1):
    if stdMark[i] < 60:
        stdName[i] = stdName[i] + Fail
        print(stdName[i])
    else:
        stdName[i] = stdName[i] + Pass
        print(stdName[i])
print(max(stdMark))

我希望在没有print(max(stdMark))功能的情况下手动完成max()

3 个答案:

答案 0 :(得分:1)

正确答案需要使用迭代器并适用于任何类型的项目。

def maximum(items, default=None):
    iterator = iter(items)
    m = next(iterator)
    for item in iterator:
        if item > m:
            m = item
    return m

答案 1 :(得分:1)

实现max函数的另一种方法:

Python 2.7.3 (default, Mar 13 2014, 11:03:55) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> reduce(lambda x,y: x if x > y else y,[10,40,30,326,673])
673

您可以看到python内置函数源代码,包括max函数here

答案 2 :(得分:0)

这是实现最大功能的一种方法,这就是您要寻找的内容吗?

def newMax(lst):
    max = lst[0]
    for k in range(1, len(lst)):
        if lst[k] > max:
            max = lst[k]
    return max