リスト理解のコレクションのためのPython add()関数

リスト理解のコレクションのためのPython add()関数

リストから重複したエントリを削除するために、次のコードが見つかりました。

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

何が起こったのか理解できない」それを見ませんでした。追加(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

おすすめ記事