首页 > 解决方案 > 从字符串中返回最长的单词

问题描述

我需要定义一个名为“len_score”的函数,它返回一个单词的长度。以 len_score 函数作为参数调用“最佳”函数。

我想成为的输出: print(best(len_score, names), "has the long name.")

麦贾格尔的名字最长。

我的代码是:

def len_score(name):
    lst=[len(x) for x in name]
    return lst
def best(lst1,lst2):
    final=zip(lst1,lst2)
    return max final

names = ["Ben", "April", "Zaber", "Alexis", "McJagger", "J.J.", "Madonna"]

print(best(len_score, names) == 'McJagger')

但我得到了错误,不知道如何在列表中设置条件。

标签: pythonpython-3.x

解决方案


我认为你想要做的是:

def len_score(name):
    lst = [len(x) for x in name]
    return lst

def best(func, lst):
    func_lst = func(lst) # call the passed in function ON lst
    return lst[func_lst.index(max(func_lst))]

names = ["Ben", "April", "Zaber", "Alexis", "McJagger", "J.J.", "Madonna"]

print(best(len_score, names) == 'McJagger')

推荐阅读