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

Why does Python2 to Python3 converter put "items()" into "list"?

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

my_dict.items()

来自

list(my_dict.items())

这背后的动机是什么?我假设 items() 不保证排序(它是随机的,因为字典没有排序)。因此,通过使用 list 我们订购了 key, value 对。

我的假设正确吗?

keys()values()items() 方法 list 在 3.x return 视图而不是列表中,因此要保留他们的 2.x 行为我们需要将视图转换为列表。

如果不需要这种旧行为(例如,我们只迭代结果),那么可以删除对 list() 的调用。