我想从整数数组中选择最大值数。这在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()
。
答案 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