如何在这里找到最长的字符串?

我正在尝试使用以下代码在嵌套列表中找到最长的字符串


table_data = [['apples', 'oranges', 'cherries', 'banana'],

             ['Alice', 'Bob', 'Carol', 'David'],

             ['dogs', 'cats', 'moose', 'goose']]


cnt = [""]*3

for tab in range(len(table_data)):

    for liel in table_data[tab]:

        if len(liel) > len(cnt[tab]):

            cnt[tab]=liel

print(cnt)

# ['cherries', 'Alice', 'moose']

上面的代码返回的是每个列表中最长的字符串,但我认为它的代码很长,有没有其他方法可以做到这一点?


期待任何使用列表理解或函数的方法来做到这一点


宝慕林4294392
浏览 164回答 2
2回答

拉丁的传说

期望使用列表理解来做到这一点是的,列表理解是一个不错的选择。>>> [max(row, key=len) for row in table_data]['cherries', 'Alice', 'moose']

浮云间

实现结果的另一种方法是使用该map函数,尽管这不使用列表理解:table_data = [['apples', 'oranges', 'cherries', 'banana'],             ['Alice', 'Bob', 'Carol', 'David'],             ['dogs', 'cats', 'moose', 'goose']]output = list(map(lambda data: max(data, key=len),table_data))print(output)输出:['cherries', 'Alice', 'moose']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python