# 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.