您如何在字典中找到最常见的单词?

时间:2019-04-26 18:14:29

标签: python python-3.x

我正在编写一个函数,该函数将字典作为参数,并通过对字典进行迭代来返回其值最长的键。如果字典为空,则应返回一个空字符串。如果单词的位置列表最长,则该函数可以返回任何一个常见单词。

例如:

>>> {'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”。 有人有建议吗?

2 个答案:

答案 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