Даны два счётчика:\n``python\nfrom collections import Counter\nc1 = Counter({'a': 3, 'b': 1})\nc2 = Counter({'a': 2, 'b': 2})\n`\nЧто вернёт выражение c1 - c2`?

ACounter({'a': 4, 'b': 3}): поэлементная сумма счётчиков, ключи a и b суммируются по двум объектам
BCounter({'a': 1, 'b': -1}): разница по ключам с сохранением отрицательных значений в итоговом объекте
CCounter({'a': 1}): разница по ключам с автоматическим отбрасыванием нулевых и отрицательных значений в итоге
DCounter(): пустой счётчик, ведь операция вычитания обнуляет общие ключи в обоих исходных объектах
Правильный ответ. Вычитание Counter отбрасывает нулевые и отрицательные значения, оставляя только положительные.

Разбор

При вычитании c1 - c2 считается разница по каждому ключу: a = 3 − 2 = 1, b = 1 − 2 = −1. Однако Counter при арифметических операциях автоматически отбрасывает ключи с нулевым или отрицательным значением. Поэтому b не попадёт в результат, и итог — Counter({'a': 1}). Чтобы сохранить отрицательные значения, используют метод c1.subtract(c2), изменяющий объект на месте.

Проверь себя · 1/3разбор после ответа
Есть список названий кампаний campaigns с повторами. Нужно получить список уникальных кампаний в отсортированном виде. Какой вариант корректен?
Тренировать Python в Telegram

Ещё вопросы по теме «Коллекции и структуры данных»