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

Print single variable per line from list

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

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

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

您可以使用 zip:

for ip, vlan, n in zip(networks, vlans, name):
    print ip
    print vlan
    print n
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。您在每次迭代时都参考您的主列表,因此您每次都将它们完整地打印出来。