忽略元素的递归函数 - python
Recursive function with elements ignored - python
各位!
我有以下任务:
“编写一个递归函数,使用列表作为参数,returns 最大值。
非整数元素将被忽略!"
我写了下面的代码:
def recursion(listOne):
if(len(listOne) == 1):
return listOne[0]
else:
maximum = recursion(listOne[1:])
if(isinstance(listOne[0], int)) or (isinstance(listOne[0], float)):
if(maximum > listOne[0]):
return maximum
else:
return listOne[0]
else:
return listOne[0]
listOne = ["apple", 7, 10, (5, 4)]
x = recursion(listOne)
print("Max number in the list is: ", x)
它适用于仅包含数字的列表;
输出显示:“列表中的最大数量是:苹果”。
如果有人能帮助我解决这个问题,我将不胜感激:)
P.S。
我是 python 的新人,来自 C/C++ 背景,所以请理解我缺乏 python 特定知识。
这是满足您的任务要求的一种方式:
def recursion(lst, maxi=float("-inf")):
if len(lst) == 1:
return lst[0] if isinstance(lst[0], int) and lst[0] > maxi else maxi
if isinstance(lst[0], int):
maxi = maxi if maxi > lst[0] else lst[0]
return recursion(lst[1:], maxi)
list_one = ["apple", 7, 10, (5, 4)]
res = recursion(list_one)
print("Max number in the list is: ", res)
各位!
我有以下任务: “编写一个递归函数,使用列表作为参数,returns 最大值。 非整数元素将被忽略!"
我写了下面的代码:
def recursion(listOne):
if(len(listOne) == 1):
return listOne[0]
else:
maximum = recursion(listOne[1:])
if(isinstance(listOne[0], int)) or (isinstance(listOne[0], float)):
if(maximum > listOne[0]):
return maximum
else:
return listOne[0]
else:
return listOne[0]
listOne = ["apple", 7, 10, (5, 4)]
x = recursion(listOne)
print("Max number in the list is: ", x)
它适用于仅包含数字的列表; 输出显示:“列表中的最大数量是:苹果”。
如果有人能帮助我解决这个问题,我将不胜感激:)
P.S。 我是 python 的新人,来自 C/C++ 背景,所以请理解我缺乏 python 特定知识。
这是满足您的任务要求的一种方式:
def recursion(lst, maxi=float("-inf")):
if len(lst) == 1:
return lst[0] if isinstance(lst[0], int) and lst[0] > maxi else maxi
if isinstance(lst[0], int):
maxi = maxi if maxi > lst[0] else lst[0]
return recursion(lst[1:], maxi)
list_one = ["apple", 7, 10, (5, 4)]
res = recursion(list_one)
print("Max number in the list is: ", res)