Я соскабливаю веб-сайт, содержащий список людей. Тот же человек может показать больше, чем один раз, и это возможно для нескольких людей, чтобы одни и те же имя:Как я могу убедиться, что значение атрибута уникально в Python?
Tommy Atkins (id:312)
Tommy Atkins (id:183)
Tommy Atkins (id:312)
Я хочу создать объект для каждого человека и отбросить дубликаты.
В настоящее время я использую представление списка для проверки всех экземпляров класса и выяснения, используется ли key
. Есть ли более простой способ сделать это?
class Object:
def __init__(self, key):
if [object for object in objects if object.key == key]:
raise Exception('key {} already exists'.format(key))
else: self.key = key
objects = []
objects.append(Object(1))
objects.append(Object(1)) # Exception: key 1 already exists
нет ли способ предотвратить создание экземпляров, если к ey уже используется? Я не знаком с управлением памятью в Python, но создание всех этих объектов кажется расточительным. – fenceop
@fenceop Не назначайте экземпляр какой-либо переменной, любой объект без ссылки слева будет автоматически собирать мусор. –