具有命名键的多维数组?

时间:2017-01-17 13:43:50

标签: php python arrays

我通过将一些旧的脚本从PHP转换为Python来学习Python,而且我仍然坚持用PHP解决的问题。

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

  $array['12345']['user'] = 'example@example.com';
  $array['12345']['int_id'] = 1;
  $array['12345']['int_speed'] = 1238745;

  $array['51245']['user'] = 'example@example.com';
  $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上复制此行为变得非常棘手,我假设我想要做的是创建列表字典?但后来我不确定如何添加/编辑这些列表或循环访问它们依次获取数组每层的所有值。

1 个答案:

答案 0 :(得分:0)

这里根本没有任何列表;这只是一个嵌套的词典。语法与PHP中的语法几乎相同。

data = {}
for user_id in user_data:
    data[user_id] = {}
    data[user_id]['int_id'] = 1
    data[user_id]['user'] = 'foo@bar.com'

    # or more simply
    data[user_id] = {'user': 'foo@bar.com', 'int_id': 1}