str.format中的Python Increment {#}

时间:2017-03-13 23:59:46

标签: string python-3.x

我希望能够通过引用变量" count'来增加{}中的内容。因为我希望它打印出列表中不同的部分'节点'每次迭代

count = 0

while len(nodes) > count:
    print("ltm node {} \n".format(*nodes))
    count = count+1
    print("    address {} \n".format(*nodes))
    count = count+1

我不能在我的生活中找到它在任何地方找到它

以下是完整代码

nodes = [] 

node_qty = int(input("Number Of Nodes: "))
count = 1
print("Enter the node details ")

while len(nodes) < node_qty*2:
    item1 = input("Enter Node %d Name: " % count)
    nodes.append(item1)
    item2 = input("Enter Node %d IP: " % count)
    nodes.append(item2)
    count = count+1

count = 0

print("\n"+"List of nodes:")

while len(nodes) > count:
    print("ltm node {0} \n".format(*nodes))
    count = count+1
    print("    address {1} \n".format(*nodes))
    count = count+1

以下是该行动的成绩单:

> Number Of Nodes: 2 Enter the node details
> 
> Enter Node 1 Name: Server1
> 
> Enter Node 1 IP: 192.168.1.1
> 
> Enter Node 2 Name: Server2
> 
> Enter Node 2 IP: 160.10.10.1
> 
> List of nodes:  
> ltm node Server1 
> 
>     address 192.168.1.1 
> 
> ltm node Server1  
> 
>     address 192.168.1.1

目前它只显示索引0和1的详细信息,因为它是硬编码的,但是给出了&#39; count&#39;变量增量我想在花括号中使用这个变量来代替固定数字

(昨天才开始学习python,所以希望代码不是太邋:):)

1 个答案:

答案 0 :(得分:1)

在每次输入迭代中,您已将2个项目添加到列表中,因此,保持逻辑按原样,您还希望以步长2和#34迭代列表;并将您的列表编入索引,如this answer中所述:

for i in range(0,len(nodes),2):
    print("ltm node {0} \n".format(nodes[i]))
    print("    address {0} \n".format(nodes[i+1]))

注意:当accessing arguments by position每个print str.format(){0}索引开始时为{{3}}。

或者作为一个印刷声明:

print("ltm node {0} \n    address {1} \n".format(nodes[i], nodes[i+1]))   

输出:

List of nodes:
ltm node Server1 
    address 192.168.1.1 

ltm node Server2 
    address 160.10.10.1