每個人!
我有以下任務:“撰寫一個使用串列作為引數并回傳最大值的遞回函式。非整數元素將被忽略!”
我撰寫了以下代碼:
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)
它適用于僅包含數字的串列;輸出說:“串列中的最大數量是:蘋果”。
如果有人幫我解決這個問題,我將不勝感激:)
PS 我是 Python 新手,來自 C/C 背景,所以請理解我缺乏特定于 Python 的知識。
uj5u.com熱心網友回復:
這是滿足您的任務要求的一種方法:
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322319.html
