def min(args, *kwargs):
print(args)
key = kwargs.get("key",None)
kv=[(item,key(item)) for item in args if key!=None]+[(item,item) for item in args if key==None]
if isinstance(kv[0][1],(int,float)):
for items in kv:
if items[1]<kv[0][1]:
kv[0]=items
return kv[0][0]
else:
z=list(zip([x for x in kv[0][0]],[x for x in kv[0][1]]))
for items in z:
if items[1]<z[0][1]:
z[0]=items
return z[0][0]
def max(*args, **kwargs):
key = kwargs.get("key",None)
kv=[(item,key(item)) for item in args if key!=None]+[(item,item) for item in args if key==None]
if isinstance(kv[0][1],(int,float)):
for items in kv:
if items[1]>kv[0][1]:
kv[0]=items
return kv[0][0]
else:
z=list(zip([x for x in kv[0][0]],[x for x in kv[0][1]]))
for items in z:
if items[1]>z[0][1]:
z[0]=items
return z[0][0]
The last test min([[1,2],[3,4],[9,0]],lambda x:x[1]). I can solve it with this form min([1,2],[3,4],[9,0],lambda x:x[1]),but 2 list is too difficult.
Thanks!