Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyCharm怪异类型警告_Python_Pycharm - Fatal编程技术网

Python PyCharm怪异类型警告

Python PyCharm怪异类型警告,python,pycharm,Python,Pycharm,为什么会出现以下代码: v = [None for _ in range(3)] v[-1] = 0 <<< v=[范围(3)内的uu无] v[-1]=0消除此类警告的一个简单解决方法是在v变量上添加类型提示: v: list = [None for i in range(3)] v[-1] = 0 PyCharm将其视为v:list[Any],并允许您在没有警告的情况下分配任何类型的值。根据(emphasis是我的): 列表是可

为什么会出现以下代码:

v = [None for _ in range(3)]
v[-1] = 0                       <<<
v=[范围(3)内的uu无]

v[-1]=0消除此类警告的一个简单解决方法是在
v
变量上添加类型提示:

v: list = [None for i in range(3)]
v[-1] = 0
PyCharm将其视为
v:list[Any]
,并允许您在没有警告的情况下分配任何类型的值。

根据(emphasis是我的):

列表是可变序列,通常用于存储同质项目的集合(其中精确的相似程度因应用而异)

int和NoneType不被认为是同质的(通过PyCharm的代码检查),因此发出警告。解决此问题的最简单方法是使用INT填充列表:

v=[0代表范围(3)]#[0]*3#更短
v[-1]=0

另一种选择是,您可以将元组用作异构项容器(正如@Jeyekomon指出的),但请记住,元组是不可变的(一旦创建,它就无法更改)。

看起来像是PyCharm发出的警告,对吗?@sanyash correct:)PyCharm似乎不喜欢这样一个事实:有时列表中有
None
,有时还有
int
。我同意皮查姆的观点。几乎没有很好的理由去做
v=[范围(3)内的没有]
。我不同意PyCharm。未指定v仅为非的列表,因此在指定int时没有错误。谢谢!我不知道!:)此外,如果现在有人想知道建议使用什么结构来存储异构数据集合,那就是。