Python从字典中创建一个数组

时间:2016-10-04 12:28:06

标签: python

我不确定这是否是我想要做的正确的标题但是,我有一个同一级别的列表,并且想要使用" vlan"作为顶级和"名称"作为一个属性。以下是清单。

vlans = ['vlan 1', 'name default', 'vlan 2', 'name non-default']

创建字典的代码。不确定我是否需要这样做。

for v in vlans:
    type = v.split(" ")
    value = dict([(type[0], type[1])])
    print(value) 

输出

{'vlan': '1'}
{'name': 'default'}
{'vlan': '2'}
{'name': 'non-default'}

标记为答案的回复将适用于此情况。这个输出也能实现吗?

{
    "vlan 1":{
        "name": "default"
    },
    "vlan 2":{
        "name": "non-default"
    }    
}

1 个答案:

答案 0 :(得分:0)

不确定您要找的是什么,所以这里有一个猜测:

vlans = ['vlan 1', 'name default', 'vlan 2', 'name non-default']
output = {}

for i in range(len(vlans)/2):
    output[vlans[2*i]] = vlans[2*i + 1]

这会产生{'vlan 1': 'name default', 'vlan 2': 'name non-default'} 这是你的意思:

  

使用" vlan"作为顶级和"名称"作为属性

编辑:作为事后的想法,也许你想要摆脱" vlan"和"名称"到处。这是一种方法。

vlans = ['vlan 1', 'name default', 'vlan 2', 'name non-default']
output = {}

for i in range(len(vlans)/2):
    vlan_number = (vlans[2*i].split())[1]
    name = (vlans[2*i + 1].split())[1]
    output[vlan_number] = name

这会产生输出:

{'1': 'default', '2': 'non-default'}

请注意,这里的vlan编号是字符串。要将它们作为整数,只需在最后一行中转换它们,例如:

output[int(vlan_number)] = name