我可以在引发 ValueError 时显示索引号吗?

Can I show an index number when raising a ValueError?

我想检查以列表列表作为输入的给定函数的输入格式。我使用下面的代码来指示输入文件在哪个索引处格式错误:

for i, doc in enumerate(input_file):
    if not isinstance(doc,list):
        raise ValueError("The element of input_file at index ' + str(i) + ' is not a list")

但是,此代码(输入错误)的输出是:

ValueError: The element of input_file at index ' + str(i) + ' is not a list

因此,它不会将 str(i) 转换为实际数字。那里可以得到一个号码吗?

使用双引号 (") 代替单引号 (')

语法错误。您没有连接数字。 代码 raise ValueError("The element of input_file at index ' + str(i) + ' is not a list") 基本上只将 '+ str(i) +' 视为字符串。

试试这个:

raise ValueError(f"The element of input_file at index '{i}' is not a list")