我正在尝试使用以下代码在嵌套列表中找到最长的字符串table_data = [['apples', 'oranges', 'cherries', 'banana'], ['Alice', 'Bob', 'Carol', 'David'], ['dogs', 'cats', 'moose', 'goose']]cnt = [""]*3for tab in range(len(table_data)): for liel in table_data[tab]: if len(liel) > len(cnt[tab]): cnt[tab]=lielprint(cnt)# ['cherries', 'Alice', 'moose']上面的代码返回的是每个列表中最长的字符串,但我认为它的代码很长,有没有其他方法可以做到这一点?期待任何使用列表理解或函数的方法来做到这一点
2 回答

拉丁的传说
TA贡献1789条经验 获得超8个赞
期望使用列表理解来做到这一点
是的,列表理解是一个不错的选择。
>>> [max(row, key=len) for row in table_data]
['cherries', 'Alice', 'moose']

浮云间
TA贡献1829条经验 获得超4个赞
实现结果的另一种方法是使用该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']
添加回答
举报
0/150
提交
取消