Returns a new dictionary that contains the same key-value pairs as p.
Empties an existing dictionary of all key-value pairs.
int PyDict_SetItem(PyObject *p, PyObject *key,
PyObject *val)
Inserts value into the dictionary p with a key of key.
key must be hashable; if it isn't, TypeError will be
raised.
Returns 0 on success or -1 on failure.
Inserts value into the dictionary p using key
as a key. key should be a char*. The key object is
created using PyString_FromString(key).
Returns 0 on success or -1 on failure.
Returns the number of items in the dictionary. This is equivalent to
"len(p)" on a dictionary.
int PyDict_Next(PyObject *p, int *ppos,
PyObject **pkey, PyObject **pvalue)
Iterate over all key-value pairs in the dictionary p. The
int referred to by ppos must be initialized to 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, 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);
}