«Набор» Python с повторяющимися элементами

Существует ли стандартный способ представления "набора", который может содержать повторяющиеся элементы.

Насколько я понимаю, множество имеет ровно один или ноль элементов. Я хочу, чтобы функциональность имела любое число.

В настоящее время я использую словарь с элементами в качестве ключей и количеством в качестве значений, но это кажется неправильным по многим причинам.

Мотивация: Я считаю, что у такой коллекции есть много применений. Например, опрос любимых цветов может быть представлен как:обзор = ['синий', 'красный', 'синий', 'зеленый']

Здесь меня не волнует порядок, но меня волнует количество. Я хочу делать такие вещи, как:

survey.add('blue')
# would give survey == ['blue', 'red', 'blue', 'green', 'blue']

...и, может быть, даже

survey.remove('blue')
# would give survey == ['blue', 'red', 'green']

Примечания: Да, набор — это неправильный термин для такого рода коллекций. Есть более правильный?

Список, конечно, будет работать, но необходимая коллекция неупорядочена. Не говоря уже о том, что метод именования наборов кажется мне более подходящим.

35
задан cammil 16 April 2012 в 15:21
поделиться