zu konvertieren Ich mache eine Migration, Python2
zu Pytnon3
mit 2to3
. (Python2.7.12
und Python3.5.2
genau)Sollte ich dict.keys() in list (dict.keys()) für die Iteration in Python3? Konvertieren, schlägt 2to3 vor, das
Während die Migration zu tun, 2to3
schlagen vor, mich wie die unter Typ-Druckguss verwendet werden.
a = {1: 1, 2: 2, 3: 3}
for i in a.keys(): ----> for i in list(a.keys()):
print(i)
Danach versuche ich, zu überprüfen, was für einen Unterschied es in einem Skript.
$ 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
Es gibt offenbar verschiedene Arten dict_keys
nicht sein list
aber dict_keys
noch mit loop
wie list
ohne Typ-Cast in dem obigen einfachen Code zu funktionieren scheinen.
Ich frage mich Wenn ich ohne Typ-Cast verwende, gäbe es einige Nebeneffekte oder nicht. Wenn es nichts gibt, sieht es unnötig Operation aus.
Warum schlägt 2to3
das vor?
auch für 'len' Sie brauchen 'list()' – hansaplast
guten Ruf werfen. Ich bin auch darauf gestoßen. –