python - 尝试使用递归查找列表中最长的字符串。为什么我一无所获?

标签 python python-3.x

为什么我什么都没有?

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/

相关文章:

python - 显示在列中的嵌套列表

python - 使用summary_out时将回归结果导出为csv文件

python - 在 openpyxl 条件格式公式中使用多个单元格

python - 使用 python 从文件夹中一张一张打开图像?

python - IndexError : list index out of range when in python, 即使范围存在

python - Django - 根据用户选择对现有搜索结果进行排序

python - 当数据帧上存在混合数据类型时,为什么我无法使用 loc 赋值?即一些列有字符串,其他列有数字

python - python 随机选择和选择的不同结果?

python - 更好的方法去堆叠 Pandas 行?

Python 3 : list. 文档中的append()