Ich verwende eine IPv4Network
aus dem Modul als Schlüssel in einem dict. Dadurch kann ich schnell nach Duplikaten suchen und andere Daten notieren.IPv4Network-Objekt als Schlüssel im Wörterbuch
Allerdings bin ich neugierig, wenn ich die IN-Anweisungen stapeln und von O (n) Verarbeitung entfernt bleiben kann.
from ipaddress import IPv4Network
net1 = IPv4Network('10.10.10.0/24')
net2 = IPv4Network('10.10.10.128/25')
net3 = IPv4Network('10.10.10.0/24')
dict1 = {net1: 'Winner!'}
print(dict1.get(net3))
Winner!
if net3 in dict1:
print('Yup')
Yup
# -------- This doesn't work, looking for way to accomplish it.
if net2.network_address in dict1:
print('Wouldn't that be nice?)
# --- Yes I can do this.
for keys in dict1:
if net2.network_address in keys:
print(keys, 'I\'m inside you!')
Irgendwelche Ideen für einen cleveren Trick? Eine Möglichkeit, dies neu zu strukturieren, um einige integrierte Funktionen zu nutzen?
Ich möchte wissen, ob
- Der Schlüssel in doppelter Ausführung vorhanden ist (leicht); und
- Wenn die
IPv4Network
als einer der Schlüssel enthalten ist.
Ich habe ein paar Änderungen an der Post vorgenommen, um einige Tippfehler zu korrigieren und die allgemeine Lesbarkeit zu verbessern. In Frage 2 habe ich angenommen, du meintest "IPv4Network", wenn du auf "network" stehst, also habe ich es dort geändert. Fühlen Sie sich frei, diese bestimmte Änderung rückgängig zu machen, wenn Sie denken, dass ich es falsch verstanden habe. – ray
Ich bin müde und habe versucht, mehrere Dinge zu beheben, und Sie schlagen mich auf den Schlag. Ich habe buchstäblich bearbeitet, als es mir sagte, dass du es aktualisiert hast. :) – Allen