私はSet
にIPアドレスを格納しています。 IPアドレスは一意のIPまたはサブネットにすることができます。私は__hash__
と__eq__
メソッドをオーバーロードしました。 Set
は正常に動作します。複製が追加されたときに元の要素を取得
質問:重複要素を追加しようとしているとき、元の要素を表示する方法はありますか?
in
の操作は使用できません。これは、IPアドレスが約100,000であり、Set
の5つの異なるバケットのようにしか作成できないため、時間がかかるためです。
例
IはSet
サブネット10.0.0.0/8を加えました。
次に、ユニークなIP 10.10.10.10をSet
に追加しようとしました。
Set
は、サブセット10.0.0.0/8の複製であるため、固有のIPを追加しません。 10.0.0.0/8
P.Sの
10.10.10.10が重複:私はちょうど
in
操作の定義を経て、このような状況で、私は、ユーザーを表示したいです。要素が既に存在するかどうかを示します。元の要素は表示されません。 (私はPython開発者ではない)。P.P.S:ファイアウォールのACLリストを読んでいます。私はセットにIPアドレスを追加するだけではありません。だから私はここにコードを表示することはできません。コードは機能します。
スニペットを追加できますか? –
コードスニペットを追加しなかったのは、大きなコードとコードがファイルを1行ずつ読み込み、各行にたくさんのものを入れ、IPアドレスを取得してからセットに追加するからです - 'ip_address_set.add (each_ip) ' –
少なくとも' __eq__'メソッド? –