【问题标题】:Print single variable per line from list从列表中每行打印单个变量
【发布时间】:2015-05-09 06:53:01
【问题描述】:

所以我很新,还在学习,但我在任何地方都找不到答案......,这里说的是我的问题: 我正在尝试使用不同行上的多个列表生成输出,我一次想要一个,我将发布我的非工作代码,然后发布一个仅适用于单个列表的代码示例:

在调用列表的每一行重复打印每个变量:

networks = ["192.168.1.1 255.255.255.0", "192.168.2.1 255.255.255.0", "192.168.3.1 255.255.255.0"]
vlans = ["1001", "1002", "1003"]
name = ["MGMT", "DATA", "VOICE"]

for s in (networks, vlans, name):
    print "vlan %r" % (vlans)
    print "Name %r" % (name)
    print "int vlan %r" % (vlans)
    print " ip add %r" % (networks)

生成所需的输出,一次一个地依次放置变量:

networks = ['192.168.1.1', '192.168.2.1', '192.168.3.1']

for address in networks:
    print "ip add %s" % address
    print "description I can't place multiple variables :'("

任何想法都将不胜感激,最终我想用列表名称格式化的原因是能够以这种方式在单行上使用多个列表。再次提前感谢您。

编辑:事先,我了解为每个列表执行单独的 for 循环,我希望按照打印语句的操作顺序来完成。

【问题讨论】:

    标签: python list printing


    【解决方案1】:

    你可以使用zip:

    for ip, vlan, n in zip(networks, vlans, name):
        print ip
        print vlan
        print n
    

    【讨论】:

      【解决方案2】:
      networks = ["192.168.1.1 255.255.255.0", "192.168.2.1 255.255.255.0", "192.168.3.1 255.255.255.0"]
      vlans = ["1001", "1002", "1003"]
      names = ["MGMT", "DATA", "VOICE"]
      
      for network, vlan, name in zip(networks, vlans, names):
          print "vlan %r" % (vlan)
          print "Name %r" % (name)
          print "int vlan %r" % (vlan)
          print " ip add %r" % (network)
      

      附言

      关于您的代码。 for s in (list1, list2...) 迭代列表的元组,而不是列表本身,因此 s 是每次迭代的列表。事实上,您甚至没有在代码中使用s。您在每次迭代时参考您的主列表,因此您每次都将它们完全打印出来。

      【讨论】:

        猜你喜欢
        • 2014-09-12
        • 1970-01-01
        • 1970-01-01
        • 2018-02-05
        • 2016-01-01
        • 2015-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多