【发布时间】:2018-08-11 14:47:47
【问题描述】:
我想在 python 中创建一个n*n 列表,其中大部分元素都用 None 初始化。然后我将在 for 循环中设置一些元素,但是在我将对角元素设置为 0 的行中,我在 PyCharm 中的 [j] 上得到了一个警告突出显示,说:
"意外的类型:(int, int) 可能的类型:(int, None) (slice, Iterable[None]) 检查信息:此检查检测类型错误 在函数调用表达式中。由于动态调度和鸭子类型, 这在有限但有用的情况下是可能的。种类 函数参数可以在文档字符串或 Python 3 中指定 函数注释。”
我不知道哪里错了。如果我在第一行将 2d 列表全部初始化为 0,那么这个警告就消失了。是什么让None 与众不同?
prev = [[None] * n for i in range(n)]
for i in range(n):
for j in range(n):
if i == j:
prev[i][j] = 0
......
【问题讨论】:
-
在 python 2.7 中就像一个魅力
-
你的代码在
python 3.6.1中对我来说很好 -
在 Ubuntu 16.04 的
Python 3.5.5和Python 2.7.15中工作正常 -
我在 Windows 10 x64 中使用 Python 3.6.1 和 PyCharm Community Edition 2018.2
-
类似的错误有already been reported。
标签: python python-3.x pycharm warnings