Skip to main content
 首页 » 编程设计

python之确定列表中一列最长字符串长度的最快方法

2025年05月04日25kenshinobiy

我有一个包含 5000 个键的字典,其值是列表,我需要快速确定所有字典值中给定索引的最长字符串的长度

index = 1 
d = {'foo': ['abc', 'defg'], 
     'bar': ['hij', 'klmno']} 
#m = len(max(d.values()[index],key=len))? 

预期输出:5,因为索引 1 处的所有值('defg' 和 'klmno'`,后者最长)。

请您参考如下方法:

您需要使用生成器表达式来提取正确的索引:

longest_string = len(max((row[index] for row in d.values()), key=len)) 

如果你只需要长度,而不是字符串本身,你还不如在生成器表达式中获取长度:

highest_length = max(len(row[index]) for row in d.values()) 

演示:

>>> index = 1 
>>> d = {'foo': ['abc', 'defg'], 
...      'bar': ['hij', 'klmno']} 
>>> max((row[index] for row in d.values()), key=len) 
'klmno' 
>>> max(len(row[index]) for row in d.values()) 
5 

但是,您无法避免必须遍历字典中的所有值。