Код Python 3.5 / 3.6 в зависимости от порядка вставки dict

1

Я написал некоторый код на 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, хотя я не проверял это. Мой вопрос в том, является ли это способом сделать это или есть какой-то более систематический/более красивый/более питонический или вообще лучший способ по любой причине?

Теги:
dictionary
python-3.5
python-3.6
ordereddictionary

1 ответ

0
Лучший ответ

Ваше решение работает отлично, но я бы предостерег от замены стандартного имени библиотеки чем-нибудь еще, это может смутить кого-то, пытающегося использовать OrederedDict (и выяснение его просто dict) по строке.

Я предлагаю следующее:

import sys
if sys.version_info[1] < 6:
    from collections import OrderedDict as ordered_dict
else:
    ordered_dict = dict
  • 0
    Я думаю, что переименование в order_dict это путь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню