data = ['network 10.185.16.64 255.255.255.224','network 55.242.33.0 255.255.255.0','network 55.242.154.0 255.255.255.252']
pref_network_find = re.findall('(\S+\s+255.255.255.\w+)',str(data))
mydict = {"255.255.255.0":24,"255.255.255.128":25,"255.255.255.192":26,"255.255.255.224":27,"255.255.255.240":28,"255.255.255.248":29,"255.255.255.252":30}
for i in pref_network_find:
splitlines = i.split()
for word in splitlines:
if word in mydict:
i = i.replace(word,str(mydict[word]))
pref = print (i)
listi = []
for line in pref_network_find:
listi.append(i)
print (listi)
10.185.16.64 27
55.242.33.0 24
55.242.154.0 30
['55.242.154.0 30', '55.242.154.0 30', '55.242.154.0 30']
Process finished with exit code 0
我想把['55.242.154.0 30', '55.242.33.0 24', '10.185.16.64 27']
作为list1
的结尾,但是我不能理解我的错误。你能帮我吗?你知道吗
很明显,它会在最后打印30,因为你的代码
我行刑后30岁。你用的是旧的变量'i'就像这样
所以是的,代码做得很好,我是30,它是附加30到你的结果。你知道吗
正确的代码是这样的。你知道吗
如果我在这里错了,请纠正我,也许你想要别的东西,然而,这是我对你的问题的理解。你知道吗
您的代码是错误的,因为您在此处附加了错误的索引
i
:我们在上一个循环的
i = 55.242.154.0
中有最后一个值。您应该使用line
而不是i
,或者直接在for循环中追加您不需要使用regex获得初始拼接和连接的ip;相反,只需使用
str.split()
:输出:
相关问题 更多 >
编程相关推荐