概要
Houdini での制作は基本的にノードベースであり、プログラミングを必要としません。
しかし Houdini がサポートする PythonやWrangle などの言語を使うことで、これらのノードを制御し、さらに柔軟な表現が可能になります。
本記事では、Python で dict 型(辞書)の取り扱いを紹介します。
辞書の作成
Python
辞書を作るには
変数名 = {key0:value0, key1:value1, key2:value2, ...}
とします。引数を渡さないと空の辞書が作成されます。
辞書は作成のたびに初期化されるので、dict1 が上書きされているのがわかります。
出力順序は Python 3.7 で後入れ先出し(LIFO)に変更されています。
上のように dict コンストラクタを使っても同様の辞書が作成できます。
zip() 関数を使うと、キーと値のリストから辞書を作ることができます。
引数に別の辞書を指定するとその辞書をコピーできます。
辞書の情報を取得・要素を操作
list(dict)
引数にとった辞書のすべてのキーをリストとして返します。
-
len(dict)
- 辞書の項目数を返します。キーと値のペアで 1 とみなされます。
-
dict[key]
-
指定したキーの値を返します。指定したキーが辞書に存在しない場合は KeyError になります。
dict[key] = value
指定したキーに値を設定します。すでに値が設定されている場合は更新されます。del dict[key]
辞書から、指定したキーの要素を削除します。指定したキーが辞書に存在しない場合は KeyError になります。key in dict, not key in dict(key not in dict)
key in dict は指定したキーが辞書に存在したときに True を、存在しないときに False を返します。
not key in dict は逆に、指定したキーが辞書に存在したときに False を、存在しないときに True を返します。iter[key]
指定した辞書のキーに渡るイテレータを返します。dict.clear()
辞書の要素をすべて削除します。dict.copy()
もとの辞書と等価な辞書を返します。もとの辞書と返り値は等価ですが、同一ではありません。
dict.fromkeys(iterable[, value])
用意されたキーの集合に対して初期値を指定し、新しい辞書を作成します。初期値なしで辞書を作成した場合、その値は None になります。
dict.get(key[, default])
辞書から指定したキーに対応する値を取得します。キーが存在していればその値を返し、存在していない場合、オプションで default を付けていれば default を返しつけていなければ None を返します。
そのため、KeyError が発生することはありません。
dict.items(), dict.keys(), dict.values()
それぞれ、要素、キー、値のリストを返します。pop(key[, default])
辞書から指定したキーを探索し、存在すればその要素を削除し、削除した値を返します。キーが存在しない場合、オプションで default を付けていれば default を返し(何も削除しません)、オプションを付けなければ KeyError が発生します。
reversed(keys)
指定したキーを逆順にするイテレータを返します。
もとの配列の順番が変更されるわけではないため、非破壊的な関数となります。setdefault(key[, default])
辞書からキーを探索し、対応する値を返します。キーが存在する場合はそのまま値を返し、存在しない場合、引数がキーで値が None の新しい要素を作成します。オプションで default を付けている場合、 None ではなく default で要素を作成します。
update([other])
対象とする辞書(dict0)を別の辞書(dict1)で更新します。関数自体の返り値は None です。dict0 にないキーが dict1 から追加されるときはそのまま追加されます(key4)。共通して存在するキーがあるとき、その値は上書きされます(key3)。