По существу, это то, что я пытаюсь сделать:Получение конкретного набора элементов в Python
У меня есть набор, который я добавить объекты. Эти объекты имеют свой собственный метод равенства, и в наборе никогда не должно быть элемента, равного другому элементу в наборе. Однако при попытке вставить элемент, если он равен другому элементу, я хотел бы записать объединенную версию этих двух элементов. То есть, объекты имеют поле «aux», которое не рассматривается в его методе равенства. Когда я закончил добавлять вещи, я хотел бы, чтобы поле «aux» элемента содержало комбинацию всех полей «aux» равных элементов, которые я пытался добавить.
Мое мышление было, хорошо, перед добавлением элемента в набор, проверьте, уже ли он в наборе. Если это так, вытащите его из набора, объедините два элемента, а затем верните их. Однако метод удаления в наборах Python ничего не возвращает, а метод pop возвращает произвольный элемент.
Может ли я делать то, что я пытаюсь сделать с наборами в Python, или я ложное дерево (что является права дерева?)
Что бы быть значением (по умолчанию или нет)? Оставляя в стороне, что 'set' может не предлагать необходимую функциональность, отображение кажется концептуально неправильным. – delnan
+1 это работает, потому что он дает уникальность ключам как набор, но с произвольно длинными атрибутами, такими как Мала. Я не вижу концептуального дефекта ', если ключ в D тогда: if not aux in D [key]: D [key] .append [aux]' – msw
спасибо! Несколько вопросов: (1) будет ли это иметь подобный объем памяти для использования наборов? Я работаю в условиях низкой памяти (2), что я буду использовать как «somekey»? хэш? (3) будет ли это работать, если мое слияние является функцией? добавление значений несколько упрощало его, но у меня есть функция слияния (объект, объект). – Mala