为什么Python没有更深入地指定错误?

3
我很好奇为什么Python没有更深入地指定错误?我现在正在收到这个错误。
firms[i]['predmet_podnikania']=firms[i]['predmet_podnikania'][:-1]+[firms[i]['predmet_podnikania'][-1]+line]
IndexError: list index out of range

好的,我知道我正在尝试访问比最大索引更高的某个列表。但为什么Python不告诉我是哪个列表呢?

可能是:firms[i]firms[i]['predmet_podnikania'][-1]

这将节省很多时间。


4
这就是将许多操作挤在一行的代价。如果您稍微调整一下代码格式,错误提示会更有意义。 - krock
顺便提一下,在firms[i]firms [i]['predmet_podnikania'] [-1]中,您都使用了firms[i]来访问元素,因此i的值是IndexError的根本原因。 - ZdaR
我不认为这是真的。这意味着只有当firms[i]不可调用时,firms[i]['predmet_podnikania'][-1]才会引发相同的错误。但是,如果我们有一个长度为0但存在的firms[i]['predmet_podnikania']列表,它也可能引发相同的错误。 - Milano
1个回答

4

list类中会抛出此异常。无法在list方法内获取变量名(firms),因此异常包含一个通用消息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接