簡體   English   中英

使用for-else循環時重復添加行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM