С учетом итерируемого, например,
results = [ref_a, # references big object A
ref_b, # references big object B
ref_c, # references big object A
ref_d, # references big object D
]
Ссылки - это каждый уникальный объект, но некоторые ссылаются на один и тот же (больший) объект.
Мне нужен только набор (или список) ссылок для уникальных объектов.
Мой желаемый результат, например:
custom_set = (ref_a,
ref_b,
ref_d,
)
Замечания
Встроенный Python set
неприменим, поскольку все объекты ввода различны. Это означает, что set
вернет все элементы.
Я не могу изменить определение класса для ссылок, поэтому я не могу реализовать пользовательскую функцию cmp / ha sh или аналогичную.
Это делает не имеет значения, содержит ли конечный результат ref_a
или ref_c
.
Первоначальный результат представляет собой комбинацию результатов различных API, которые действуют независимо - это также причина того, что объединенный список может иметь ссылки в тот же (большой) объект.
Я не могу сохранить только result.reference
, так как после фильтрации мне нужно получить доступ к другим атрибутам result
. Если бы я только сохранил result.reference
, мне пришлось бы создать экземпляр дорогостоящего объекта.
Извините за использование result
в качестве входного параметра, но я не хочу впоследствии его менять, так как ответы не будут подходит к вопросу больше. Я запомню это для будущего вопроса.
Возможно, reference
также не был лучшим именованием - это больше похоже на легкий прокси-объект.