Начиная с Python 3.7 обычный dict тоже сохраняет порядок вставки. В каком случае OrderedDict из модуля collections всё ещё полезнее?
AКогда нужен
dict с автоматической сортировкой ключей по алфавиту при каждой операции вставки нового элементаBКогда нужен
dict с лимитом на количество ключей и автоматическим вытеснением старых элементов из контейнераCКогда нужен
dict, запрещающий перезапись существующего ключа при выполнении присваивания d[k] = vDКогда при сравнении через
== важен порядок добавления ключей: OrderedDict его учитывает в равенствеПравильный ответ.
OrderedDict учитывает порядок при сравнении: два OrderedDict с одинаковыми ключами в разном порядке не равны.Разбор
Обычный dict в Python 3.7+ сохраняет порядок вставки, но при сравнении через == порядок не учитывается: {'a': 1, 'b': 2} == {'b': 2, 'a': 1} вернёт True. Для OrderedDict порядок важен, и такие словари равными не будут. Также OrderedDict поддерживает метод .move_to_end(), которого у обычного dict нет.
Проверь себя · 1/3разбор после ответа
После выполнения кода
lst = [1, 2]; lst.append([3, 4]) чему равно lst?Ещё вопросы по теме «Коллекции и структуры данных»
- Есть список событий `events = ["click"]`. Объект `events` используется в нескольких местах по ссылке, поэтому важно изменить именно тот же объект (не создавать новый). Нужно добавить элементы из `new_events = ["view", "purchase"]`, чтобы итог был плоским. Какой вариант корректен?
- Дан словарь `d = {"country": "RU"}`. Нужно прочитать значение по ключу `"city"`, а если ключа нет — вернуть строку `"unknown"` без исключения. Что подходит?
- В логах есть список `user_ids` с повторениями. Как получить количество уникальных пользователей?
- Что произойдёт при выполнении кода `t = (1, 2); t[0] = 9`?
- Дан список `nums = [10, 20, 30, 40]`. Чему равен результат выражения `nums[1:3]`?
- Все вопросы по «Коллекции и структуры данных» →