我有一个列有"下一跳" ip地址大约12.000长(mylist)。我要做的是根据包含出站接口和相关子网的其他列表找到出站接口。此列表包含约3,000个项目。所以基本上,我想将IP与子网络匹配,以便获得出站接口,例如172.17.32.2属于' 172.17.235.2/255.255.255.252'所以'千兆以太网1/0/0'应与172.17.32.2相关联。前缀不固定。以下是有效的,但由于12 * 3 * 10 ^ 6'如果'声明被执行。:
for i,ip in enumerate(mylist):
for j,member in enumerate(outbound):
if ipaddress.ip_address(ip) in ipaddress.ip_network(member[0],strict=False):
tmp.insert(0,ip)
#member[1] contains the interfaces, member[0] the subnetworks
tmp.insert(1,member[1])
result.append(tmp)
tmp=[]
请问专家能否更快/更有效?请提前做好。