types.DictType
and types.DictionaryType
.
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".
Nuovo nella versione 2.4.
PyObject *p) |
PyObject *p, PyObject *key, PyObject *val) |
0
on success or -1
on failure.
PyObject *p, char *key, PyObject *val) |
PyString_FromString(key)
. Returns 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, char *key) |
PyObject *p) |
PyObject *p) |
PyObject *p) |
PyObject *p) |
PyObject *p, int *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; 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); }
PyObject *a, PyObject *b, int override) |
0
on success or -1
if an exception was
raised.
Nuovo nella versione 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.
Nuovo nella versione 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
Nuovo nella versione 2.2.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.