Pra*_*tic 9 python python-2to3 python-3.x
我正在查看包含此更改的2to3的输出:
-            for file_prefix in output.keys():
+            for file_prefix in list(output.keys()):
哪里output是字典.
这种变化有什么意义?为什么2to3这样做?
这种变化如何使代码Python 3兼容?
Amb*_*ber 13
在Python 3 .keys()中,为了效率,该方法返回视图对象而不是列表.
在迭代的情况下,这实际上并不重要,但重要的是如果你做的事情foo.keys()[0]- 你不能索引视图.因此,2to3始终添加显式列表转换以确保任何潜在的索引不会中断.
您可以list()在视图正常工作的任何地方手动删除呼叫; 2to3只是不够聪明,无法分辨哪种情况.
(请注意,2.x版本可以调用iterkeys(),因为它没有索引.)
| 归档时间: | 
 | 
| 查看次数: | 1115 次 | 
| 最近记录: |