2

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コードを見たことがあるので、この機能の名前があると思います。

この機能の名前は何ですか?

4

1 に答える 1

3

Perl の対応する機能はautovivificationと呼ばれると思います。ウィキペディアのページが指摘しているように、Python 辞書にはデフォルトでこの機能はありませんが、collections.defaultdictを利用することで、このように動作するものを簡単に構築できます。いくつかのアイデアについては、この最近のブログ投稿を参照してください。

于 2012-06-13T17:15:27.673 に答える