我正在编写一个函数,该函数将字典作为参数,并通过对字典进行迭代来返回其值最长的键。如果字典为空,则应返回一个空字符串。如果单词的位置列表最长,则该函数可以返回任何一个常见单词。
例如:
>>> {'He': [0], 'thought': [1, 5, 6], 'it': [2], 'was': [3], 'chicken': [4]}
Output: thought
它必须根据位置返回最常见的单词。
但是我想我明白了,但是我写了一个函数返回最大值:
def commonest(dct):
max_length = 0
for key, val in dct.items():
if len(val) >= max_length:
max_key = key
return max_key
因此,不是返回“ thought”,而是返回“ chicken”。 有人有建议吗?
答案 0 :(得分:2)
您只是忘记了也更新max_length
:
def commonest(dct):
max_length = 0
for key, val in dct.items():
if len(val) >= max_length:
max_key = key
max_length = len(val)
return max_key
答案 1 :(得分:0)
您可以在dict项目上使用max
函数,并使用具有返回子列表长度的键函数:
max(dct.items(), key=lambda t: len(t[1]))[0]
这将返回:thought