Python 你会如何在一篇口述中找到最常用的单词?

Python 你会如何在一篇口述中找到最常用的单词?,python,python-3.x,Python,Python 3.x,我正在编写一个函数,它将字典作为参数,并通过迭代字典返回一个值最长的键。如果字典为空,则应返回空字符串。如果单词的位置列表最长,则函数可能返回任意一个常用单词 例如: >>> {'He': [0], 'thought': [1, 5, 6], 'it': [2], 'was': [3], 'chicken': [4]} Output: thought 它必须根据位置返回最常用的单词 但是我想我明白了,但是我写了一个函数,返回最大值: def commonest(dct):

我正在编写一个函数,它将字典作为参数,并通过迭代字典返回一个值最长的键。如果字典为空,则应返回空字符串。如果单词的位置列表最长,则函数可能返回任意一个常用单词

例如:

>>> {'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
因此,它不是返回“思想”,而是返回“鸡肉”。
有人有什么建议吗?

您只是忘了更新
max\u 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

您可以在dict项上使用
max
函数,并使用一个键函数返回子列表的长度:

max(dct.items(), key=lambda t: len(t[1]))[0]

这返回:
思想

有意义!哈哈,愚蠢的错误。如果我用空字典测试它,它将如何返回空字符串?我会使用while循环吗?当条件不等于一个空的dict时,我说的是if语句。我想确定它是蟒蛇式的。