私は、ipaddress
モジュールのIPv4Network
を辞書としてキーとして使用しています。これにより、私は素早く複製を探して、他のデータを書き留めることができます。辞書のキーとしてIPv4Networkオブジェクト
しかし、IN文をスタックして、O(n)処理から離しておくことができるのは不思議です。
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!')
巧妙なトリックのアイデアはありますか?組み込みのものを利用するためにこれを再構築する方法?私は
- キーは(簡単に)重複して存在するかどうかを知りたい
。
IPv4Network
がキーの1つとして含まれている場合。
いくつかの誤字を訂正して全体的な可読性を向上させるために、投稿をいくつか編集しました。あなたが '' network "'を参照したとき、あなたが '' IPv4Network'を意味すると仮定したので、私はそれを変更しました。私が間違っていると思ったら、その特定の変更をロールバックしてください。 – ray
私は疲れていて、いくつかのことを修正しようとしていました。私は文字通りあなたがそれを更新したと言ったときに編集していました。 :) – Allen