首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for-else循环时重复添加行

使用for-else循环时重复添加行
EN

Stack Overflow用户
提问于 2016-06-01 00:53:58
回答 1查看 76关注 0票数 0

我有一个函数

代码语言:javascript
复制
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

该函数背后的思想是将一个元组列表和一个字符串列表作为参数。元组包含真实地址到映射地址的映射。如果在列表中的字符串中找到映射地址,则会将其替换为实际地址

字符串列表中的最后一行被添加到我正在创建的新列表中两次。当我单步执行添加print语句的函数时,看起来列表中的最后一个元组被计算了两次。

我可以通过在else子句中添加另一个if语句来避免这个问题,但是我想知道我错在哪里。非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2016-06-01 19:02:02

用户错误。我使用了前面的一个函数来生成此函数的输入。松散定义的正则表达式加上作为其他ACL名称子集的ACL名称导致了重复的输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37551515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档