Python KeyError: 0 在字典和函数中使用时

1 投票
1 回答
3212 浏览
提问于 2025-04-17 13:56

我刚开始学Python,所以我的问题对一些人来说可能很简单,但我现在卡住了,需要你们的帮助!这是我遇到问题的代码:

def identify_language(sequence, **common_words):
    result = {}
    for i in common_words:            
        result[i] = 0
    for i in func_op(sequence.lower()):
        for j in common_words:
            if i in common_words[j]:
                result[j] += 1
    return sort(result[0][0])

...

dictionary = {'cro':list_cro, 'eng':list_cro}
language = identify_language('I had a little lamb. It was called Billy.', **dictionary)

我想根据在list_crolist_eng(还有其他的,希望能找到更多)中的样本来识别语言。可是我遇到了KeyError: 0的错误。此外,sortfunc_op这两个函数我单独测试过,运行得很好。那可能是什么问题呢?

另外,如果我把函数中的参数顺序调换(把列表放在第一个参数,把字符串放在第二个参数),我就会得到语法错误。谢谢你们的倾听!

1 个回答

0

在这个函数的最后,result 应该看起来像这样:{'cro': X, 'eng': Y},其中 X 和 Y 是数字。我不知道你的字典是什么样的,所以无法猜测这些数字是什么。计算 result['eng'] 会得到一个数字,result['cro'] 也是,但这个字典里没有 0 这个键。

另外,第二个索引操作也会让你遇到问题。result['eng'][0] 会报错,因为 result['eng'] 是一个数字,而你不能对数字进行索引。

你希望这个函数的输出是什么样的?sort 是在哪里定义的,它应该做什么?

撰写回答