这是python代码
a = [0] * 5
for i in range(5):
a[i] = [0] * 5
a[2][3] = 7
t = 2
a[t][3] = 7
for i in range(5):
a[i][3] = 7
s = "qwerty"
s[2] = "x"
Pylint 给出了以下问题:
但是,当我运行程序时,错误仅出现在 line 上s[2] = "x",这是意料之中的,因为 Python 中的字符串是不可变的。
但是二维列表中变量的值完全改变了。
我还特意加了一个循环,因为 里面没有错误。
因此问题是:为什么 Pylint 会抛出这个错误?
如果这个错误是......错误的,那么如何确保它没有发出?

我的猜测是:pylint 看到变量被初始化为整数列表(零),然后是一些代码,然后尝试访问列表的元素之一(从 pylint 的角度来看的数字) 通过索引(类型为
0[3] = 7)。诚然,出于某种原因,他不会对第二个 for 循环内的任务发誓。解决方案选项:
用空列表的列表初始化变量(实际上,每个元素都将包含相同的列表,但无论如何它们都会被覆盖):
方法马马虎虎,只是“满足”皮林特的拐杖。
禁用所需线路的诊断。为此,请从命令行运行
pylint имя_файла.py,查看警告的代码(或名称),在有问题的行中添加注释,以便 pylint 忽略它们:使用单线,我们将变量初始化为二维数组: