Добавление счетчиков удаляет ключи

Смотрите ниже, почему реализация+= сдуть ключ в моей оригинальной стойке?

>>> c = Counter({'a': 0, 'b': 0, 'c': 0})
>>> c.items()
[('a', 0), ('c', 0), ('b', 0)]
>>> c += Counter('abba')
>>> c.items()
[('a', 2), ('b', 2)]

Я думаю, что это, по меньшей мере, невежливо, есть большая разница между "X было подсчитано 0 раз" и "мы даже не считаем X". Это похоже наcollections.Counter это вовсе не счетчик, это больше похоже на мультимножество.

Но счетчики - это подкласс dict и мы можем построить их с нулевыми или отрицательными значениями:Counter(a=0, b=-1), Если это на самом деле «мешок вещей», разве это не будет запрещено, ограничивая init для принятия итерируемых хэшируемых элементов?

Чтобы еще больше запутать дело, встречные инструментыupdate а такжеsubtract методы, которые имеют различное поведение+ а также- операторы. Кажется, у этого класса кризис идентичности!

Счетчик - это сумка или сумка?

Ответы на вопрос(2)

Ваш ответ на вопрос