用python创建dictionary对象

2024-09-28 22:02:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个嵌套的dictionary对象,但由于某些原因,它没有为范围中的每个数字创建一个键。我试图在字典中基本上有多个vlan的信息,这样我就可以访问它们,比如vlan[0],vlan[1],等等。。。但是它保存最后一个值的信息。例如,如果我把num \u of \u vlan=2。我只在vlan[1]中有值,在vlan[0]中没有值。我做错什么了?我怎样才能得到想要的结果?你知道吗

num_of_vlans=input("How many VLANS do you need?: ")

num_of_vlans=int(num_of_vlans)

for i in range(num_of_vlans):
    print("Enter Information for vlan {0}".format(i+1))
    vlan={i:{'name':input("Name: "),
    'vlan_id':input("ID: "),
    'ip':input("IP: "),},}

Tags: of对象信息forinputdictionary字典原因
2条回答
num_of_vlans=input("How many VLANS do you need?: ")

num_of_vlans=int(num_of_vlans)
vlan = {}  # Initialized the vlan dict
for i in range(num_of_vlans):
    print("Enter Information for vlan {0}".format(i+1))
    vlan[i] ={'name':input("Name: "),   # Updates the vlan dict in every iteration
    'vlan_id':input("ID: "),
    'ip':input("IP: "),}
print vlan

代码中发生的事情是每次重新初始化字典的迭代vlan。应该更新它。你知道吗

正如Marlon所说,您在每次迭代中都将vlan变量重新定义为一个新的dict。在他的答案的基础上,你也可以使用dict理解(如果前一行print语句不是必需的)。你知道吗

vlan = {i: {'name': input("Name: "),
'vlan_id': input("ID: "),
'ip': input("IP: ")} for i in range(num_of_vlans)}

另外值得注意的是,在构建dict时,两个额外的尾随逗号是不必要的/多余的。你知道吗

相关问题 更多 >