想问一下用递归得到最长的元素,并输出,自己试了好久还不明白(发现用空列表会从头开始运行)初学python希望大佬帮助!感谢
参考一下:
def maxList(list):
# 设一个默认值,与列表里的值比大小,谁大留谁,依次递归,最后留下的就是最大值。
if len(list) >= 3:
if len(list[0]) <= len(list[1]):
return maxList(list[1:])
else:
num = list[0]
list = list[2:]
list.append(num)
return maxList(list)
else:
if len(list) == 2:
if len(list[0]) <= len(list[1]):
return list[1]
else:
return list[0]
else:
print("请输入列表")
print(maxList(['111', '22222','33333333']))
不用递归,直接用自带的max
list = ['ale', 'apple', 'plea']
res = max(list, key=len, default='')
print(res)
没必要将事情复杂化
参考一下:
def maxList(list):
# 设一个默认值,与列表里的值比大小,谁大留谁,依次递归,最后留下的就是最大值。
if len(list) >= 3:
if len(list[0]) <= len(list[1]):
return maxList(list[1:])
else:
num = list[0]
list = list[2:]
list.append(num)
return maxList(list)
else:
if len(list) == 2:
if len(list[0]) <= len(list[1]):
return list[1]
else:
return list[0]
else:
print("请输入列表")
print(maxList(['111', '22222','33333333']))
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632