Objeto List
***********

PyListObject

   Este subtipo de "PyObject" representa um objeto de lista Python.

PyTypeObject PyList_Type

   Esta instância de "PyTypeObject" representa o tipo de lista Python.
   Este é o mesmo objeto que "list" na camada Python.

int PyList_Check(PyObject *p)

   Retorna verdadeiro se *p* for um objeto de lista ou uma instância
   de um subtipo do tipo de lista.

int PyList_CheckExact(PyObject *p)

   Retorna verdadeiro se *p* for um objeto de lista, mas não uma
   instância de um subtipo do tipo de lista.

PyObject* PyList_New(Py_ssize_t len)
    *Return value: New reference.*

   Retorna uma nova  list  de tamanho *len* se bem sucedido, ou *NULL*
   em caso de falha.

   Nota:

     Se *len* for maior que zero, os itens do objeto de lista
     retornado são definidos como "NULL". Portanto, você não pode usar
     funções API abstratas, como "PySequence_SetItem()" ou expor o
     objeto ao código Python antes de definir todos os itens para um
     objeto real com "PyList_SetItem()".

Py_ssize_t PyList_Size(PyObject *list)

   Retorna o comprimento do objeto de lista em *list*; isto é
   equivalente a "len(list)" em um objeto lista.

Py_ssize_t PyList_GET_SIZE(PyObject *list)

   Forma macro de "PyList_Size()" sem verificação de erros.

PyObject* PyList_GetItem(PyObject *list, Py_ssize_t index)
    *Return value: Borrowed reference.*

   Retorna o objeto na posição *index* na lista apontada por *list*. A
   posição deve ser positiva, indexar do final da lista não é
   suportado. Se *index* está fora do limite, retorna-se *NULL* e uma
   exceção "IndexError".

PyObject* PyList_GET_ITEM(PyObject *list, Py_ssize_t i)
    *Return value: Borrowed reference.*

   Forma macro de "PyList_GetItem()" sem verificação de erros.

int PyList_SetItem(PyObject *list, Py_ssize_t index, PyObject *item)

   Set the item at index *index* in list to *item*.  Return "0" on
   success or "-1" on failure.

   Nota:

     Esta função "rouba" uma referência para o *item* e descarta uma
     referência para um item já presente na lista na posição afetada.

void PyList_SET_ITEM(PyObject *list, Py_ssize_t i, PyObject *o)

   Forma macro de  "PyList_SetItem()" sem checagem de erro. Este é
   normalmente usado apenas para preencher novas listas onde não há
   conteúdo anterior.

   Nota:

     Esta função "rouba" uma referência para o *item* e, ao contrário
     de "PyList_SetItem()", *não* descarta uma referência para nenhum
     item que esteja sendo substituído; qualquer referência em *list*
     será enviada.

int PyList_Insert(PyObject *list, Py_ssize_t index, PyObject *item)

   Insere o item *item* na lista *list* na frente do índice *index*.
   Retorna "0" se for bem-sucedido; retorna "-1" e levanta uma exceção
   se malsucedido. Análogo a "list.insert(index, item)".

int PyList_Append(PyObject *list, PyObject *item)

   Adiciona o item *item* ao final da lista *list*. Retorna "0" se for
   bem-sucedido; retorna "-1" e levanta uma exceção se malsucedido.
   Análogo a "list.insert(index, item)".

PyObject* PyList_GetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high)
    *Return value: New reference.*

   Return a list of the objects in *list* containing the objects
   *between* *low* 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.

int PyList_SetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)

   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.

int PyList_Sort(PyObject *list)

   Ordena os itens de *list* no mesmo lugar. Retorna "0" em caso de
   sucesso, e "-1" em caso de falha. Isso é o equivalente de
   "list.sort()".

int PyList_Reverse(PyObject *list)

   Inverte os termos de *list* no mesmo lugar. Retorna "0" em caso de
   sucesso, e "-1" em caso de falha. Isso é o equivalente de
   "list.reverse()".

PyObject* PyList_AsTuple(PyObject *list)
    *Return value: New reference.*

   Retorna um novo objeto tupla contendo os conteúdos de *list*;
   equivale a``tuple(list)``.

int PyList_ClearFreeList()

   Limpe a lista livre. Retorna o número total de itens liberados.

   Novo na versão 3.3.
