为什么Python2到Python3转换器将"items()"放入"list"?

Rom*_*man 1 python items list python-3.x

我使用工具将我的代码从Python2重新格式化为Python3.它总是做的一件事就是更换

my_dict.items()
Run Code Online (Sandbox Code Playgroud)

通过

list(my_dict.items())
Run Code Online (Sandbox Code Playgroud)

那背后的动机是什么?我假设items()不保证订购(它是随机的,因为字典没有订购).所以,通过使用list我们订购key, value对.

我的假设是否正确?

Ign*_*ams 5

keys(),values()items()方法list在3.X回报的观点,而不是名单,所以要保护他们的2.x的行为,我们需要把视图转换为列表.

如果不需要这种旧行为(例如,我们只迭代结果),则list()可以删除调用.