您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么Python 3需要dict.items用list()包装?

为什么Python 3需要dict.items用list()包装?

您可以放心地忽略此“额外预防措施”警告:即使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中通过2to3to进行转换features.items())。看来您的IDE认为代码是Python 2,因为您的for声明在Python 3中非常好,因此不应警告有关Python 3的支持

python 2022/1/1 18:33:06 有210人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶