dict
and types.DictType
.
PyObject *p) |
PyObject *p) |
) |
PyObject *dict) |
PyObject *p) |
PyObject *p, PyObject *key) |
1
, otherwise return
0
. On error, return -1
. This is equivalent to the
Python expression "key in p".
New in version 2.4.
PyObject *p) |
PyObject *p, PyObject *key, PyObject *val) |
0
on success or -1
on failure.
PyObject *p, const char *key, PyObject *val) |
PyString_FromString(key)
. Return 0
on
success or -1
on failure.
PyObject *p, PyObject *key) |
0
on success or -1
on failure.
PyObject *p, char *key) |
0
on success or -1
on
failure.
PyObject *p, PyObject *key) |
PyObject *p, const char *key) |
PyObject *p) |
PyObject *p) |
PyObject *p) |
PyObject *p) |
PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) |
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. Any references returned through
them are borrowed. ppos should not be altered during iteration.
Its value represents offsets within the internal dictionary structure,
and since the structure is sparse, the offsets are not consecutive.
For example:
PyObject *key, *value; Py_ssize_t 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; Py_ssize_t 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
on success or -1
if an exception was
raised.
New in version 2.2.
PyObject *a, PyObject *b) |
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.
PyObject *a, PyObject *seq2, int override) |
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.