私には機能があります
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
この関数の背後にある考え方は、タプルのリストと文字列のリストを引数として受け取ることです。タプルには、実際のアドレスからマップされたアドレスへのマッピングが含まれています。マップされたアドレスがリスト内の文字列で見つかった場合、実際のアドレスに置き換えられます
文字列のリストの最後の行は、作成中の新しいリストに 2 回追加されます。print ステートメントを追加する関数をステップ実行すると、リストの最後のタプルが 2 回評価されるように見えます。
別の if ステートメントを else 句に追加することで問題を回避できますが、どこが間違っているのかを理解したいと思います。どんな支援も大歓迎です!