Created on | Updated on

Houdini でプログラミング:dict 型(Python)

概要

mceclip0.png

Houdini での制作は基本的にノードベースであり、プログラミングを必要としません。
しかし Houdini がサポートする PythonやWrangle などの言語を使うことで、これらのノードを制御し、さらに柔軟な表現が可能になります。

mceclip4.png

本記事では、Python で dict 型(辞書)の取り扱いを紹介します。

辞書の作成

Python

mceclip8.png

辞書を作るには

変数名 = {key0:value0, key1:value1, key2:value2, ...}

とします。引数を渡さないと空の辞書が作成されます。

辞書は作成のたびに初期化されるので、dict1 が上書きされているのがわかります。

出力順序は Python 3.7 で後入れ先出し(LIFO)に変更されています。

mceclip9.png

上のように dict コンストラクタを使っても同様の辞書が作成できます。

mceclip10.png

zip() 関数を使うと、キーと値のリストから辞書を作ることができます。

mceclip0.png
引数に別の辞書を指定するとその辞書をコピーできます。

辞書の情報を取得・要素を操作

list(dict)

mceclip0.png
引数にとった辞書のすべてのキーをリストとして返します。

len(dict)

mceclip3.png
辞書の項目数を返します。キーと値のペアで 1 とみなされます。

dict[key]

mceclip5.png

指定したキーの値を返します。指定したキーが辞書に存在しない場合は KeyError になります。

dict[key] = value

mceclip6.png
指定したキーに値を設定します。すでに値が設定されている場合は更新されます。

del dict[key]

mceclip7.png
辞書から、指定したキーの要素を削除します。指定したキーが辞書に存在しない場合は KeyError になります。

key in dict, not key in dict(key not in dict)

mceclip9.png
key in dict は指定したキーが辞書に存在したときに True を、存在しないときに False を返します。
not key in dict は逆に、指定したキーが辞書に存在したときに False を、存在しないときに True を返します。

iter[key]

mceclip11.png
指定した辞書のキーに渡るイテレータを返します。

dict.clear()

mceclip0.png
辞書の要素をすべて削除します。

dict.copy()

mceclip1.png
もとの辞書と等価な辞書を返します。

もとの辞書と返り値は等価ですが、同一ではありません。

dict.fromkeys(iterable[, value])

mceclip2.png
用意されたキーの集合に対して初期値を指定し、新しい辞書を作成します。

初期値なしで辞書を作成した場合、その値は None になります。

dict.get(key[, default])

mceclip3.png
辞書から指定したキーに対応する値を取得します。

キーが存在していればその値を返し、存在していない場合、オプションで default を付けていれば default を返しつけていなければ None を返します。

そのため、KeyError が発生することはありません。

dict.items(), dict.keys(), dict.values()

mceclip4.png
それぞれ、要素、キー、値のリストを返します。

pop(key[, default])

mceclip5.png
辞書から指定したキーを探索し、存在すればその要素を削除し、削除した値を返します。

キーが存在しない場合、オプションで default を付けていれば default を返し(何も削除しません)、オプションを付けなければ KeyError が発生します。

reversed(keys)

mceclip7.png
指定したキーを逆順にするイテレータを返します。

mceclip11.png
もとの配列の順番が変更されるわけではないため、非破壊的な関数となります。

setdefault(key[, default])

mceclip12.png
辞書からキーを探索し、対応する値を返します。

キーが存在する場合はそのまま値を返し、存在しない場合、引数がキーで値が None の新しい要素を作成します。オプションで default を付けている場合、 None ではなく default で要素を作成します。

update([other])

mceclip14.png
対象とする辞書(dict0)を別の辞書(dict1)で更新します。
関数自体の返り値は None です。

dict0 にないキーが dict1 から追加されるときはそのまま追加されます(key4)。共通して存在するキーがあるとき、その値は上書きされます(key3)。

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

※ 問い合わせ対応はBorn Digitalより製品をご購入頂きましたお客様のみのサービスとなります。ご了承下さい。
サポート問い合わせ