动态定义多维词典

时间:2019-07-03 22:58:00

标签: python

我试图声明一个多维字典,我发现总是必须使用内部字典创建一个变量然后将其分配给其父值字典很麻烦

来自PHP,我现在想知道我是否只是缺少一些东西。

这是我的意思

我以前经常这样做

$var['nicolas']['age'] = 25;
$var['nicolas']['isMale'] = True;
$var['some_one_else']['age'] = 30;
$var['some_one_else']['isMale'] = False

我真的很喜欢它,因为它允许我创建循环并动态添加新的键/值。

例如

$team_members = array(
    "someDepartment" => array(
        "Nicolas" => array(
            'Title' => 'ConfusedProgrammer',
            'Age' => 25,
            'Sex' => 'm'
        )
    ),
    "OtherDepartment" => array(
        "otherGuy" => array(
            'Title' => 'Manager',
            'Age' => 30,
            'Sex' => 'f'
        )
    )
);

$response = array();
foreach($team_members as $deptName => $deptVal){
    foreach($deptVal as $cName => $cVal){
        $response[$cName]['Age'] = $cVal['Age'];
        $response[$cName]['isMale'] = (strtolower($cVal['Sex']) == 'm'?True:False);
    }
}

在python中,我实现该目标的方式类似于以下内容。

parent_dict = {}

parent_dict['test'] = {}
parent_dict['test']['hello'] = 'It works'

parent_dict['test2']['other_way_to_say_hello'] = 'Does not work    :(   '

我想做的是避免声明新尺寸。

现在,在对此进行研究之后,我意识到寻找的行为可能根本不可能实现。

但是希望看到你们如何处理这种情况。

我是python的新手,到目前为止很喜欢它,但是我感觉经常要处理这种类型的问题,并且确实大大降低了我的学习进度。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用defaultdict并将默认值设置为新的defaultdicthttps://docs.python.org/3/library/collections.html#collections.defaultdict

相关问题:Multiple levels of 'collection.defaultdict' in Python