我需要返回列表中具有最小和最大值的元组,但是我不能使用python的max()和min()函数。
我的函数必须是递归的
没有背景
def minmax(lista):
if(len(lista) == 0):
raise ValueError('Cannot find the maximum of an empty list.')
if len(lista) == 1:
return (lista[0], lista[0])
else:
maxValue = minmax(lista[1:])
print(maxValue if maxValue > lista[0] else lista[0])
minmax([1,2,3])=(1,3) minmax([49,1,6,10])=(1,49)
答案 0 :(得分:0)
此函数返回
1.如果lista为空或无,则为ValueError
2.如果list是一个元素,则为元组(lista [0],lista [0])
3.在所有其他情况下的(最小,最大)元组
def minmax(lista, min_value=None, max_value=None):
if lista is None or len(lista) == 0:
raise ValueError('Cannot find the maximum of an empty list.')
check_value = lista[0]
if min_value is None:
min_value = check_value
elif check_value < min_value:
min_value = check_value
if max_value is None:
max_value = check_value
elif check_value > max_value:
max_value = check_value
if len(lista) == 1:
return min_value, max_value
else:
return minmax(lista[1:], min_value, max_value)