В чем разница между определениями: контейнер, коллекция и структура данных в Python?
Я учу Python. Знаю что существуют типы данных, и что каждый тип из себя представляет. Понимаю что есть структуры данных, это программные единицы которые могут содержать в себе другие данные и они одновременно являются типами тоже. Но в разных источниках, информация по-разному дается. И не понимаю в чем разница между коллекциями, структурами и контейнерами. Все они содержат те же list, dict, set, tuple, frozenset, по крайней мере если не использовать другие зависимости... Когда нужно использовать определение контейнер, структуру или коллекцию?
Ответы (2 шт):
Я бы сказал так:
Термин "структура данных" используют, когда говорят о некотором типе данных, имеющем сложное внутреннее устройство именно в контексте того, как оно устроено. При этом вообще не обязательно, чтобы этот тип данных мог вмещать в себя другие типы данных.
Термин "контейнер" подразумевает именно то, что внутри объекта содержатся другие объекты. При этом не обязательно их может быть боьше одного, и они не обязательно однотипные.
Термин "коллекция" подразумевает объект, который вмещает в себя именно множество других объектов (обычно - однотипных) и предоставляет возможность работы с содержимым именно как с неким множеством элементов, которые можно обрабатывать однотипно. Например, коллекция почти всегда подразумевает возможность итерации по содержимому.
Так, навскидку:
контейнер: объект, содержащий в себе другие объекты, причём тут нет никаких других условий - что это за объекты, упорядочены ли они как-то, просто объект с другими объектами внутриструктура: объект, имеющий чётко обозначенный (структурированный) список полей (объектов) внутри себя, т.е. можно сказать, что это контейнер, но с неким структурированным (тут надо бы подобрать синоним, но что-то не придумаю) содержимымколлекция: упорядоченный тем или иным способом набор объектов, который мы можем перебирать некоторым стандартным способом (например, с помощью циклаfor), по сути это опять же снова контейнер, и даже можно сказать структура с определёнными свойствами