我正在迁移,Python2
与. (确切地说)Pytnon3
2to3
Python2.7.12
Python3.5.2
在进行迁移时,2to3
建议我使用如下所示的类型转换。
a = {1: 1, 2: 2, 3: 3}
for i in a.keys(): ----> for i in list(a.keys()):
print(i)
之后,我尝试检查脚本中有什么不同。
$ python3
>>> a = {1: 1, 2: 2, 3: 3}
>>> a.keys()
dict_keys([1, 2, 3])
>>> for i in a.keys(): print(i)
1
2
3
在上面的简单代码中,它显然返回了不同的类型dict_keys
,list
但dict_keys
似乎仍然可以在loop
没有类型转换的情况下使用。list
我想知道如果我不使用类型转换,是否会有一些副作用。如果什么都没有,看起来是不必要的操作。
为什么会这样2to3
建议?