リストから重複したエントリを削除するために、次のコードが見つかりました。
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