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语句。我想确定它是蟒蛇式的。