types.DictType
and types.DictionaryType
.
0
on success or -1
on failure.
PyString_FromString(key)
. Returns 0
on
success or -1
on failure.
0
on success or -1
on
failure.
0
prior to the first call to this function to start the
iteration; the function returns true for each pair in the
dictionary, and false once all pairs have been reported. The
parameters pkey and pvalue should either point to
PyObject* variables that will be filled in with each key and
value, respectively, or may be NULL.
For example:
PyObject *key, *value; int pos = 0; while (PyDict_Next(self->dict, &pos, &key, &value)) { /* do something interesting with the values... */ ... }
The dictionary p should not be mutated during iteration. It is safe (since Python 2.1) to modify the values of the keys as you iterate over the dictionary, but only so long as the set of keys does not change. For example:
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); }
0
on success or -1
if an exception was
raised.
New in version 2.2.
PyDict_Merge(a, b, 1)
in C,
or a.update(b)
in Python. Return 0
on
success or -1
if an exception was raised.
New in version 2.2.
0
on success or -1
if an exception
was raised.
Equivalent Python (except for the return value):
def PyDict_MergeFromSeq2(a, seq2, override): for key, value in seq2: if override or key not in a: a[key] = value
New in version 2.2.
See About this document... for information on suggesting changes.