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时没有错误。谢谢!我不知道!:)此外,如果现在有人想知道建议使用什么结构来存储异构数据集合,那就是。