您可以放心地忽略此“额外预防措施”警告:即使list
_在两个版本的Python中,代码都一样工作。如果需要一个列表,它将以不同的方式运行(但事实并非如此):实际上,在Python 2中features.items()
是一个 _列表 ,但在Python 3中是一个视图 。它们在用作可迭代对象时的作用相同,如您的示例。
现在,Python 2到Python 3转换工具2to3
在安全性方面有误,并假定您在使用时确实想要一个列表dict.items()
。情况可能并非如此(如在问题中所示),在dict.items()
Python 3中,这种情况(不包装list
)会更好(更快,并且内存消耗更少,因为没有构建列表)。
具体来说,这意味着Python 2代码可以显式地遍历视图:(for k, v in features.viewitems()
将在Python 3中通过2to3
to进行转换features.items()
)。看来您的IDE认为代码是Python 2,因为您的for
声明在Python 3中非常好,因此不应警告有关Python 3的支持。