types.DictType および types.DictionaryType
として公開されています。
| PyObject *p) |
| PyObject *p) |
| ) |
| PyObject *dict) |
| PyObject *p) |
| PyObject *p, PyObject *key) |
1 を返し、
それ以外の場合には 0 を返します。エラーの場合 -1
を返します。この関数は Python の式"key in p"と等価です。
バージョン 2.4 で 新たに追加 された仕様です。
| PyObject *p) |
| PyObject *p, PyObject *key, PyObject *val) |
0 を、失敗した場合には -1 を返します。
| PyObject *p, char *key, PyObject *val) |
PyString_FromString(key) で生成
されます。
成功した場合には 0 を、失敗した場合には -1 を返します。
| PyObject *p, PyObject *key) |
0 を、失敗した場合には -1 を返します。
| PyObject *p, char *key) |
0 を、失敗した場合には -1 を返します。
| PyObject *p, PyObject *key) |
| PyObject *p, char *key) |
| PyObject *p) |
| PyObject *p) |
| PyObject *p) |
| PyObject *p) |
| PyObject *p, int *ppos, PyObject **pkey, PyObject **pvalue) |
0 に
初期化しておかなければなりません; この関数は辞書内の各ペアを
取り上げるごとに真を返し、全てのペアを取り上げたことが分かると
偽を返します。パラメタ pkey および pvalue には、
それぞれ辞書の各々のキーと値を指すポインタか、または NULL
が入ります。この関数から返される参照はすべて借りた参照になります。
反復処理中に ppos を変更してはなりません。この値は
内部的な辞書構造体のオフセットを表現しており、構造体はスパース
なので、オフセットの値に一貫性がないためです。
以下に例を示します:
PyObject *key, *value;
int pos = 0;
while (PyDict_Next(self->dict, &pos, &key, &value)) {
/* 取り出した値で何らかの処理を行う... */
...
}
反復処理中に辞書 p を変更してはなりません。 (Python 2.1 からは) 辞書を反復処理する際に、キーに対応する値を 変更しても大丈夫になりましたが、キーの集合を変更しないことが 前提です。以下に例を示します:
PyObject *key, *value;
int pos = 0;
while (PyDict_Next(self->dict, &pos, &key, &value)) {
int i = PyInt_AS_LONG(value) + 1;
PyObject *o = PyInt_FromLong(i);
if (o == NULL)
return -1;
if (PyDict_SetItem(self->dict, key, o) < 0) {
Py_DECREF(o);
return -1;
}
Py_DECREF(o);
}
| PyObject *a, PyObject *b, int override) |
0 を返し、例外が送出された場合には
-1 を返します。
バージョン 2.2 で 新たに追加 された仕様です。
| PyObject *a, PyObject *b) |
PyDict_Merge(a, b, 1) と同じ、
Python で表せばa.update(b) と同じです。
成功した場合には 0 を返し、例外が送出された場合には
-1 を返します。
バージョン 2.2 で 新たに追加 された仕様です。
| PyObject *a, PyObject *seq2, int override) |
0 を返し、例外が送出された場合には
-1 を返します。
(戻り値以外は) 等価な Python コードを書くと、以下のようになります:
def PyDict_MergeFromSeq2(a, seq2, override):
for key, value in seq2:
if override or key not in a:
a[key] = value
バージョン 2.2 で 新たに追加 された仕様です。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。