我是python编程的新手,它试图动态生成字典以将其解析为我的脚本。为此,我将不得不遍历字符串列表,并将其用作字典以填充更多值。在下面的示例中,我得到了一个评估后的字符串“ ip_1”,这必须是一本字典,我需要在该字典上填充一些键/值对。
d = {}
vlan_start = 1001
no_of_vlans = 10
start = [1,2,3,4]
for i in range(vlan_start,vlan_start+no_of_vlans):
d[i]={}
for j in start:
a = 'ip'+ '_' + str(j)
c = dict(a={})
print(c)
我得到的输出是:{'a': {}}
而预期的输出是:{'ip_1':{}}
最终输出应该是这样;
d = {1001:{'ip_1':{},'ip_2':{},'ip_3':{},'ip_4':{}},1002:{'ip_1':{},'ip_2':{},'ip_3':{},'ip_4':{}}
答案 0 :(得分:0)
很高兴您找到了使其正常工作的方法!
使用dict理解表达式的更简洁的解决方案是:
vlan_start = 1001
no_of_vlans = 10
vlan_start = 1001
no_of_vlans = 10
ips = {f"ip_{ip}": {} for ip in range(1,5)}
d = {
vlan: ips for vlan in range(vlan_start, vlan_start + no_of_vlans)
}
assert d == {
1001: {"ip_1": {}, "ip_2": {}, "ip_3": {}, "ip_4": {}},
1002: {"ip_1": {}, "ip_2": {}, "ip_3": {}, "ip_4": {}},
1003: {"ip_1": {}, "ip_2": {}, "ip_3": {}, "ip_4": {}},
1004: {"ip_1": {}, "ip_2": {}, "ip_3": {}, "ip_4": {}},
1005: {"ip_1": {}, "ip_2": {}, "ip_3": {}, "ip_4": {}},
1006: {"ip_1": {}, "ip_2": {}, "ip_3": {}, "ip_4": {}},
1007: {"ip_1": {}, "ip_2": {}, "ip_3": {}, "ip_4": {}},
1008: {"ip_1": {}, "ip_2": {}, "ip_3": {}, "ip_4": {}},
1009: {"ip_1": {}, "ip_2": {}, "ip_3": {}, "ip_4": {}},
1010: {"ip_1": {}, "ip_2": {}, "ip_3": {}, "ip_4": {}},
}
您可能想查看有关dict理解的教程,例如https://www.datacamp.com/community/tutorials/python-dictionary-comprehension。