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

相关内容