Python add() 列表理解中集合的函數

Python add() 列表理解中集合的函數

我遇到了以下程式碼來從清單中刪除重複項:

seen = set(); print [i for i in list if i not in seen and not seen.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

相關內容