Функция Python add() множества в понимании списка

Функция Python add() множества в понимании списка

Я наткнулся на следующий код для удаления дубликатов из списка:

seen = set(); print [i for i in list if i not in seen and not seen.add(i)]  

Я не мог понять, что именно.и не видел.add(i)"эта часть кода работает какпомощь(установить.добавить)дает ниже объяснение:

add(...)
    Add an element to a set.
    This has no effect if the element is already present.

С нетерпением жду вашей помощи в понимании этого.

решение1

Списочное включение перебирает значения исходного/входного списка. Мы хотим, чтобы значение было добавлено в новый/выходной список, если и только если оно еще не было просмотрено, отсюда и условное выражение if i not in seen. Когда новое значение добавляется в новый/выходной список, seenнабор должен быть обновлен, отсюда и seen.add(i)вызов функции. Однако set.add()метод возвращает None, что вычисляется как False. Поэтому notоператор добавляется, так что not seen.add(i)всегда возвращает True.

Связанный контент