[英]Repeated addition of line when using for-else loop
我有一個功能
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語句來回避問題,但是我想了解我要去哪里。 任何幫助,不勝感激!
用戶錯誤。 我使用了以前的函數來為此函數生成輸入。 松散定義的正則表達式,加上作為其他ACL名稱子集的ACL名稱,導致重復輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.