Python 3.5 / 3.6 代码取决于字典插入顺序
Python 3.5 / 3.6 code depending on dict insertion order
我在 Python 3.6 上写了一些代码,我发现它依赖于 3.6 中新增的键的字典插入顺序,并将在 3.7 中得到保证。
我想支持3.5。我的文件开头有这个:
import sys
if sys.version_info[1] < 6:
from collections import OrderedDict
else:
OrderedDict = dict
这似乎行得通。我假设 dict 可能比 OrderedDict 更快,尽管我没有检查这个。我的问题是,这是执行此操作的方法还是出于任何原因还有更多 systematic/prettier/more pythonic 或通常更好的方法?
你的解决方案工作正常,但我会警告不要用其他任何东西替换标准库名称,这可能会使试图使用 OrederedDict(并发现它只是字典)的人感到困惑。
我提议:
import sys
if sys.version_info[1] < 6:
from collections import OrderedDict as ordered_dict
else:
ordered_dict = dict
我在 Python 3.6 上写了一些代码,我发现它依赖于 3.6 中新增的键的字典插入顺序,并将在 3.7 中得到保证。 我想支持3.5。我的文件开头有这个:
import sys
if sys.version_info[1] < 6:
from collections import OrderedDict
else:
OrderedDict = dict
这似乎行得通。我假设 dict 可能比 OrderedDict 更快,尽管我没有检查这个。我的问题是,这是执行此操作的方法还是出于任何原因还有更多 systematic/prettier/more pythonic 或通常更好的方法?
你的解决方案工作正常,但我会警告不要用其他任何东西替换标准库名称,这可能会使试图使用 OrederedDict(并发现它只是字典)的人感到困惑。
我提议:
import sys
if sys.version_info[1] < 6:
from collections import OrderedDict as ordered_dict
else:
ordered_dict = dict