Удалить из списка указанные c экземпляры объекта - PullRequest
1 голос
/ 05 августа 2020

Как Python newb ie, я действительно изо всех сил пытаюсь найти хороший и эффективный способ удаления объектов из списка, если другой объект в этом списке имеет такое же значение атрибута для некоторых атрибутов, но большее значение для другого значения атрибута.

Я думал об использовании __eq__(self, other) и set() для выполнения работы, например:

def __eq__(self, other):
    if not isinstance(other, ViewData):
        return NotImplemented
    return self.session_id == other.session_id \
                and self.user_id == other.user_id \
                and self.course_id == other.course_id \
                and self.video_id == other.video_id \
                and self.locale == other.locale \
                and self.watched_percentage >= other.watched_percentage

Есть ли лучший и более питонный c как это сделать?

Большое спасибо за то, что помогли мне!

1 Ответ

0 голосов
/ 05 августа 2020

Создайте dict, используя session_id, ..., locale в качестве ключа и список его объектов в качестве значения. Затем из списка каждого ключа выберите максимальное значение watched_percentage.

Или отслеживайте максимальный объект каждого ключа на лету.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...