Python从字典创建数组

Python从字典创建数组,python,Python,我不确定这是否是我想做的事情的正确标题,但是,我在同一级别有一个列表,并且希望使用“vlan”作为顶层,“name”作为属性。下面是清单 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”作为顶层,“name”作为属性。下面是清单

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"
    }    
}

不确定你在找什么,所以这里有一个猜测:

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

请澄清您对输出的期望。这不是创建一个字典,而是一个字典列表。实际问题是什么有点不清楚。您不知道如何将结果附加到列表中吗?您是指数组还是列表
array
是一个标准的库模块,numpy使用自己的数组,因此在Python中数组和列表不一样。不确定您真正想要的是什么,如果您想要dict,则密钥是重复的。谢谢!我不知道该怎么问我的问题,但你们生产的产品正是我想要的。