jft*_*uga -5 python lambda python-3.x
如果我有这些数据:
a = [['a', 'b', 'b', 'v', 'd'],
['d', 'f', 'g'], ['q', 'w', 'e', 'r', 't', 'y'],
['x', '123', 'v', 'b'], ['g', 'h', 'i']]
Run Code Online (Sandbox Code Playgroud)
我想运行一个函数(最好是单行),它将返回列表列表中123具有最长字符串长度的函数.我怎样才能做到这一点?
我唯一看到的是在列表列表中找到最长的列表,所以这是一个稍微不同的问题.
我想我会itertools用来展平嵌套列表然后使用内置的max:
from itertools import chain
data = [['a', 'b', 'b', 'v', 'd'],
['d', 'f', 'g'], ['q', 'w', 'e', 'r', 't', 'y'],
['x', '123', 'v', 'b'], ['g', 'h', 'i']]
print(max(chain.from_iterable(data), key=len))
# '123'
Run Code Online (Sandbox Code Playgroud)
更天真的方法是在每个列表中找到最长的字符串,然后在这些字符串之间找到最长的字符串:
print(max((max(li, key=len) for li in data), key=len))
# '123'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
768 次 |
| 最近记录: |