If len is greater than zero, the returned list object’s items are
set to NULL. Thus you cannot use abstract API functions such as
PySequence_SetItem() or expose the object to Python code before
setting all items to a real object with PyList_SetItem().

Return the object at position index in the list pointed to by list. The
position must be positive, indexing from the end of the list is not
supported. If index is out of bounds, return NULL and set an
IndexError exception.

Return a list of the objects in list containing the objects betweenlow
and high. Return NULL and set an exception if unsuccessful. Analogous
to list[low:high]. Negative indices, as when slicing from Python, are not
supported.

Set the slice of list between low and high to the contents of
itemlist. Analogous to list[low:high]=itemlist. The itemlist may
be NULL, indicating the assignment of an empty list (slice deletion).
Return 0 on success, -1 on failure. Negative indices, as when
slicing from Python, are not supported.