Python 实现 max()
本帖最后由 一个账号 于 2020-3-21 18:32 编辑题目要求:
实现 max() 函数
不得使用内置模块!
格式
def myMax(arr):
# 你的代码
例子
>>> myMax()
7
NOW, IT'S YOUR SHOWTIME! 本帖最后由 qiuyouzhi 于 2020-3-21 18:00 编辑
我的答案:
1,最普通的:
>>> def mymax(arr):
big = arr # 取第一个值,用于之后的判断
for i in arr:
if i > big:
big = i
return big
第二种:
>>> def myMax(array):
arr = array[:]
for i in range(len(arr)):
for j in range(len(arr)):
if arr > arr:
arr, arr = arr, arr
return arr[-1]
简单粗暴 qiuyouzhi 发表于 2020-3-21 17:35
我的答案:
1,最普通的:
待会??? WangJS 发表于 2020-3-21 17:35
待会???
有问题吗? MY CODE:myMax=lambda arr:__import__('functools').reduce(lambda a,b:(a if a>b else b),arr){:10_248:} @zltzlt 过来玩玩? qiuyouzhi 发表于 2020-3-21 17:35
我的答案:
1,最普通的:
你这种更改了原数组 zltzlt 发表于 2020-3-21 17:55
你这种更改了原数组
改了 本帖最后由 一个账号 于 2020-3-21 18:57 编辑
qiuyouzhi 发表于 2020-3-21 18:01
改了
增加难度:完全实现 max() 一个账号 发表于 2020-3-21 18:27
增加难度:完全实现 max()
没有难度{:10_248:}def max(iterable,/,*vars,key=None,default=None):
if vars:
if default is not None:
raise TypeError("Cannot specify a default for max() with multiple positional arguments")
greatest=iterable
flag=key(greatest)
else:
iterator=iter(iterable)
if default is None:
try:
greatest=next(iterator)
except StopIteration:
raise ValueError("max() arg is an empty sequence")
else:
greatest=default
if key is None:
for var in vars:
if var>greatest:
greatest=var
return greatest
else:
flag=key(greatest)
for var in vars:
if (k:=key(var))>flag:
flag=k
greatest=var
return greatest 永恒的蓝色梦想 发表于 2020-3-23 10:20
没有难度
>>> def myMax(iterable,/,*vars,key=None,default=None):
if vars:
if default is not None:
raise TypeError("Cannot specify a default for max() with multiple positional arguments")
greatest=iterable
flag=key(greatest)
else:
iterator=iter(iterable)
if default is None:
try:
greatest=next(iterator)
except StopIteration:
raise ValueError("max() arg is an empty sequence")
else:
greatest=default
if key is None:
for var in vars:
if var>greatest:
greatest=var
return greatest
else:
flag=key(greatest)
for var in vars:
if (k:=key(var))>flag:
flag=k
greatest=var
return greatest
>>> max(1, 2, 3)
3
>>> myMax(1, 2, 3)
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
myMax(1, 2, 3)
File "<pyshell#6>", line 7, in myMax
flag=key(greatest)
TypeError: 'NoneType' object is not callable 看看 本帖最后由 永恒的蓝色梦想 于 2020-3-23 12:03 编辑
一个账号 发表于 2020-3-23 10:32
这句本来是废弃了的……忘删了,感谢指出
页:
[1]