多维数组自动子数组初始化功能名称?

时间:2012-06-13 17:02:45

标签: php python language-agnostic programming-languages

在某些语言中,如php,您无需手动初始化多维数组的每个维度。您只需指定键路径,语言将根据需要自动初始化子数组。

例如,在php中我可以做到

$foo = array();
$foo['sub1']['sub2']['sub3'] = 5;

而不必手动初始化每个级别的子数组

$foo = array();
$foo['sub1'] = array();
$foo['sub1']['sub2'] = array();
$foo['sub1']['sub2']['sub3'] = 5;

我知道python也提供了这种便利我看过python代码看起来是等价的,所以我觉得这个功能有一个名字。

此功能的名称是什么?

1 个答案:

答案 0 :(得分:3)

我相信Perl中的相应功能称为autovivification。正如维基百科页面指出的那样,默认情况下Python字典没有此功能,但通过使用collections.defaultdict可以很容易地构建一些行为方式。有关一些想法,请参见最近的blog post