我有一个功能
def static_nat_fwsm_check(mapped_to_real_address_pairs,FWSM_ACLs):
amended_static_nat_acl=[]
for acl_line in FWSM_ACLs:
for i,j in mapped_to_real_address_pairs:
if j in acl_line:
amended_static_nat_acl.append('!STATIC NAT SUBSTITUTION FOR '+acl_line)
amended_static_nat_acl.append(re.sub(j,i,acl_line))
break
else:
amended_static_nat_acl.append(acl_line)
return amended_static_nat_acl
该函数背后的想法是将一个元组列表和一个字符串列表作为参数。元组包含真实地址到映射地址的映射。如果在列表中的字符串中找到映射地址,则将其替换为真实地址
字符串列表中的最后一行被两次添加到我正在创建的新列表中。当我逐步执行添加打印语句的函数时,看起来列表中的最后一个元组被评估了两次。
我可以通过在 else 子句中添加另一个 if 语句来回避这个问题,但我想了解我哪里出错了。非常感谢任何帮助!