擅长:python、mysql、java
<p>您的代码是错误的,因为您在此处附加了错误的索引<code>i</code>:</p>
<pre><code>for line in pref_network_find:
listi.append(i)
</code></pre>
<p>我们在上一个循环的<code>i = 55.242.154.0</code>中有最后一个值。您应该使用<code>line</code>而不是<code>i</code>,或者直接在for循环中追加</p>
<pre><code>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}
listi = []
for i in pref_network_find:
splitlines = i.split()
for word in splitlines:
if word in mydict:
listi.append(i.replace(word, str(mydict[word])))
print(listi)
</code></pre>