2017-01-17 75 views
1

我通过将一些旧脚本从PHP转换为Python来学习Python,并且我坚持我可以在PHP中解决的一些问题。具有命名键的多维数组?

我有3个数据列表(通过SNMP获取)。在PHP中,我像这样存储它们:

$array['12345']['user'] = '[email protected]'; 
    $array['12345']['int_id'] = 1; 
    $array['12345']['int_speed'] = 1238745; 

    $array['51245']['user'] = '[email protected]'; 
    $array['51245']['int_id'] = 2; 
    $array['51245']['int_speed'] = 5151244; 

因为我有3个列表,我正在做3组处理。第一次运行获取所有用户名和用户ID(上面的12345/51245)的列表,这意味着我可以设置数组的第一部分。然后我就可以处理的数据的其他两个列表,并在PHP他们会被分配像这样(在foreach,大概):

$array[$user_id]['int_id'] = $int_id; 
    $array[$user_id]['int_speed'] = $int_speed; 

试图复制在Python的这种行为变得相当棘手,我假设我想要做的是创建一个列表字典?但后来我不知道如何添加/编辑这些列表或循环访问它们,从而依次获取数组中每个图层的所有值。

回答

0

这里似乎没有任何列表;这只是一个嵌套的字典。和PHP的语法几乎相同。

data = {} 
for user_id in user_data: 
    data[user_id] = {} 
    data[user_id]['int_id'] = 1 
    data[user_id]['user'] = '[email protected]' 

    # or more simply 
    data[user_id] = {'user': '[email protected]', 'int_id': 1} 
+0

谢谢,我不知道我为什么这么挣扎。我一直在做PHP多年,但只是拿起Python。 –