Нет
Если тебе нужно то поведение которое он в нарушение LSP переопределил для ==
Если надо
Ни разу не пригождался, но нужно понимать, что от той смысл его отличается от обычного.
Ну сейчас (начиная с 3.7) обычный словарь гарантирует order. Я так понимаю, единственный плюс - это совместимость с предыдущими версиями питона?
Обычный словарь сохраняет порядок вставки, что удобно для итерации, но без костылей не контролируемо. OrderedDict позволяет порядком управлять (хоть и по-извращенски).
Мне только порядок вставки важен
Тогда тебе не нужен OrderedDict. А нужен зачем, кстати?
У меня есть два листа со словарями Использую itertools.groupby что бы сгрупировать их по company_id, но нужно что бы порядок был сохранен Для того что бы insertion делать за О(1) во время итерации по второму списку (там порядок будет таким же, но многие company_id могут не присутствовать), решил сделать общий словарь, где company_id будет ключом
Не совсем понял, что именно ты делаешь. Можно кодом?
modules_list = [{‘company_id’: 1, ‘module_name’: ‘abcde’}, {‘company_id’: 1, ‘module_name’: ‘abcde1’}, {‘company_id’: 2, ‘module_name’: ‘abc’}, …] streams_list = [{‘company_id’: 1, ‘stream_name’: ‘abcde’}, …] Мне эти два списка нужно обьеденить в один список сгруппированный по company_id, то есть что-то вроде этого: [{quizzes: all_modules_of_company_1, streams: all_streams_of_company_1}, {quizzes: all_modules_of_company_2, streams: all_streams_of_company_2},…] Но во втором списке (streams) не обязательно будут присутствовать все company_id из первого списка
Ок. А как здесь важен порядок вставки в словарь? Выглядит как будто полезнее чтобы в списках компании шли в одном и том же порядке.
Там охренеть много данных, что нужно думать об алгоритмической сложности?
Они и идут в одном порядке, просто может быть такое: modules_list = [company_1, company_3, company_4, company_5, company_6, company_7…] (я специально в этом примере делаю unique by company_id) streams_list = [company_1, company_5, company_7, …] Они идут в одинаковом порядке, но отсутствие пробелов во втором списке не гарантированно
А порядок вставки в словарь важен что бы потом это конвертировать в лист. В JSON вроде бы порядок ключей в словаре не сохраняется, поэтому придется переводить
Обсуждают сегодня