Начиная с Python 3.7 обычный dict тоже сохраняет порядок вставки. В каком случае OrderedDict из collections всё ещё полезнее?
AКогда нужен словарь, который автоматически сортирует ключи по алфавиту
BКогда нужен словарь с ограничением на максимальное количество ключей
CКогда нужен словарь, который запрещает перезапись существующих ключей
DКогда при сравнении двух словарей важен порядок добавления ключей
Правильный ответ.
OrderedDict учитывает порядок при сравнении: два OrderedDict с одинаковыми ключами, но в разном порядке, не равны.Разбор
Обычный dict в Python 3.7+ сохраняет порядок вставки, но при сравнении == порядок не учитывается: {'a': 1, 'b': 2} == {'b': 2, 'a': 1} вернёт True. Для OrderedDict порядок важен, и такие словари не будут равны. Также OrderedDict поддерживает метод .move_to_end(), которого нет у обычного dict.
Проверь себя · 1/3разбор после ответа
Есть множество
s = {"a", "b"}. Нужно удалить элемент "c", если он есть, и не получать ошибку, если его нет. Какой способ корректен?Ещё вопросы по теме «Коллекции и структуры данных»
- Есть список событий `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]`?
- Все вопросы по «Коллекции и структуры данных» →