有没有办法快速查询字典对象,以便找到包含最多单词的密钥(所有密钥都是字符串类型)?
即,如果具有最大键的项目有五个单词{'这是最大的键':3},我怎样才能快速查询dict并返回int'5'?
最佳, 乔治娜
答案 0 :(得分:2)
这将为您提供密钥:
max(d, key=lambda x: len(x.split()))
如果你想要尺寸:
max(len(x.split()) for x in d)
答案 1 :(得分:1)
max of - 每个键的单词数:
max(len(k.split()) for k in d.keys())
答案 2 :(得分:1)
longest=max(d.keys(), key=lambda s:len(s.split()))
len(longest.split())
答案 3 :(得分:0)
max(len(i.split()) for i in d.iterkeys())
答案 4 :(得分:0)
答案是否定的。
如果您想知道是否有快速输入的解决方案,那么请务必查看其他回复。但是没有一个会在大型词典上快速运行,我认为这是你问题的精神。
如果这确实是您需要经常做的事情,您应该修改代码中添加和删除字典中的键的点,以便它们还保留一堆键,按字数排序。
答案 5 :(得分:0)
如果你能保证......
<强>计数强>
max(key.count(' ') for key in d) + 1
如果你不能......
<强>分割强>
max(len(key.split()) for key in d)
答案 6 :(得分:-1)
没有捷径。简单的方法:
import re
max([len(re.split('\s+', k)) for k in d.keys()])