为什么我什么都没有?
def find_longest(long:list):
for i in range(len(long)):
if long[i] == '' or long[i] == []:
return long
elif len(long[i])>len(long[i-1]):
max_length = find_longest(long[i])
return long.append(max_length)
print(find_longest(longest_strings))
最佳答案
追加不会返回任何内容。您需要附加然后返回列表。
def find_longest(long:list):
for i in range(len(long)):
if long[i] == '' or long[i] == []:
return long
elif len(long[i])>len(long[i-1]):
max_length = find_longest(long[i])
long.append(max_length)
return long
这样做的原因是因为 list
是一种可变数据类型,追加只是改变列表,而不是创建附加新数据的列表的新实例。
找到最长字符串的更好方法是这样的:
def longest_string(strings):
return max(strings, key=lambda x: len(x))
values = ['a', 'ab', 'abc', 'abcd']
print longest_string(values)
关于python - 尝试使用递归查找列表中最长的字符串。为什么我一无所获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32471141/