Я создал класс Python с некоторыми атрибутами string/number и атрибутом списка. Теперь мне нужен список некоторых объектов этого класса без дубликатов. Объекты могут иметь одинаковые значения (равные), но ни один объект не должен присутствовать более одного раза.Python список изменяемых объектов без дубликатов
Я знаю, что устанавливает только поддерживающие неизменяемые объекты, но значения моих объектов будут меняться.
Есть ли другой подходящий тип данных для этой проблемы? С технической точки зрения, мне нужен массив ссылок на объекты без дубликатов, которые реализуют все методы коллекционного класса.
Понятно, что это не имеет большого смысла - если вы измените один из ваших изменяемых объектов, вы можете изменить его, чтобы он стал идентичным чему-то еще в списке. Если вы выполняете одноразовую фильтрацию, вы можете рассмотреть подход «отпирания», преобразовывая все в неизменяемый тип, используя 'set()', а затем преобразовывая обратно в изменяемый тип. –
Меня не интересует равенство. Объекты представляют объект в реальном мире. Объекты могут быть класса «человек» с атрибутом высоты. В списке может быть более одного человека с одинаковой высотой, но каждый человек может быть только один раз. – schoeberl
Как следует из ответов на связанный вопрос, установите для работы из окна с пользовательскими классами, потому что функция по умолчанию __hash__ возвращает значение, основанное на идентификаторе объекта, которое не изменяется, если значения объекта изменяются. – schoeberl