从列表中每行打印单个变量

时间:2015-05-09 06:53:01

标签: python list printing

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

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

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循环,我希望按照打印语句的操作顺序来完成。

2 个答案:

答案 0 :(得分:3)

您可以使用zip

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

答案 1 :(得分:0)

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)

P.S。

关于你的代码。 for s in (list1, list2...)迭代列表的元组,而不是列表本身,因此s是每次迭代的列表。实际上,您甚至不在代码中使用s。您在每次迭代时都会引用主列表,因此您每次都会完全打印它们。