##
7.3.1 Dictionary Objects

`PyDictObject`
  This subtype of `PyObject` represents a Python dictionary object.

PyTypeObject `PyDict_Type`
  This instance of `PyTypeObject` represents the Python dictionary type.

int `PyDict_Check` (PyObject *p)
  Returns true if its argument is a `PyDictObject`.

PyObject* `PyDict_New` ()
  Returns a new empty dictionary.

void `PyDict_Clear` (PyDictObject *p)
  Empties an existing dictionary of all key/value pairs.

int `PyDict_SetItem` (PyDictObject *p, PyObject *key, PyObject *val)
  Inserts value into the dictionary with a key of key. Both key and value should be PyObjects, and key should be hashable.

int `PyDict_SetItemString` (PyDictObject *p, char *key, PyObject *val)
  Inserts value into the dictionary using key as a key. key should be a `char *`. The key object is created using `PyString_FromString(key)`.

int `PyDict_DelItem` (PyDictObject *p, PyObject *key)
  Removes the entry in dictionary p with key key. key is a PyObject.

int `PyDict_DelItemString` (PyDictObject *p, char *key)
  Removes the entry in dictionary p which has a key specified by the `char *`key.

PyObject* `PyDict_GetItem` (PyDictObject *p, PyObject *key)
  Returns the object from dictionary p which has a key key. Returns `NULL` if the key key is not present, but without (!) setting an exception. Note: this function returns a ``borrowed'' reference.

PyObject* `PyDict_GetItemString` (PyDictObject *p, char *key)
  This is the same as `PyDict_GetItem()`, but key is specified as a `char *`, rather than a `PyObject *`.

PyObject* `PyDict_Items` (PyDictObject *p)
  Returns a `PyListObject` containing all the items from the dictionary, as in the dictinoary method `items()` (see the Python Library Reference).

PyObject* `PyDict_Keys` (PyDictObject *p)
  Returns a `PyListObject` containing all the keys from the dictionary, as in the dictionary method `keys()` (see the Python Library Reference).

PyObject* `PyDict_Values` (PyDictObject *p)
  Returns a `PyListObject` containing all the values from the dictionary p, as in the dictionary method `values()` (see the Python Library Reference).

int `PyDict_Size` (PyDictObject *p)
  Returns the number of items in the dictionary.

int `PyDict_Next` (PyDictObject *p, int ppos, PyObject **pkey, PyObject **pvalue)