2015-11-18 3 views
-1

Определение:структура сумка данных в Python

Bag or Multiset представляет собой структуру данных, которая позволяет множество повторяющихся элементов, при условии, что порядок поиска не является существенным.

Теперь, когда я прочитал документацию на python, сказано, что Counter ведет себя как структура данных Bag. Но я смущен, если мы можем использовать List или Tuple в качестве альтернативы?

Один из возможных недостатков, я вижу, что removing элемент не разрешен в сумке. Кроме того, при обычном извлечении элемента в List или Tuple требуется время O (n), но Bag может быть реализовано посредством хэширования, чтобы разрешить постоянное удаление времени.

Вопрос:

Можем ли мы использовать список или Кортеж как структура данных Bag?

+0

У вас есть один, ясный вопрос, на который вы хотите знать ответ? –

+0

@AmitKumarGupta сделано! – vivek

+0

@vivek - почему бы не использовать сам набор? Элементы не упорядочены в наборе. Если вы ищете неизменность, вы можете использовать кортеж. – rohithpr

ответ

1

Можем ли мы использовать структуру списков или кортежей в качестве суммарной структуры данных?

Да.

Для этого потребуется некоторый код, чтобы получить правильную структуру, и вам, скорее всего, понадобится список, поскольку он изменен. Но вы можете добавить дубликаты в список, посчитать их и удалить.

+0

'Для этого потребуется некоторый код, чтобы получить правильную структуру', вы имеете в виду написать класс/функцию-оболочку для соответствия API-интерфейсу Bag? – vivek

+0

yes, thats correct –

+0

Хм, так что если я кусок кода не является публичным API, я могу использовать список без всякого страха. – vivek

Смежные вопросы