Objetos lista¶
-
PyTypeObject
PyList_Type
¶ Esta instancia de
PyTypeObject
representa el tipo de lista de Python. Este es el mismo objeto quelist
en la capa de Python.
-
int
PyList_Check
(PyObject *p)¶ Retorna verdadero si p es un objeto de lista o una instancia de un subtipo del tipo lista. Esta función siempre finaliza con éxito.
-
int
PyList_CheckExact
(PyObject *p)¶ Retorna verdadero si p es un objeto lista, pero no una instancia de un subtipo del tipo lista. Esta función siempre finaliza con éxito.
-
PyObject*
PyList_New
(Py_ssize_t len)¶ - Return value: New reference.
Retorna una nueva lista de longitud len en caso de éxito o
NULL
en caso de error.Nota
Si len es mayor que cero, los elementos del objeto de la lista retornada se establecen en
NULL
. Por lo tanto, no puede utilizar funciones API abstractas comoPySequence_SetItem()
o exponer el objeto al código Python antes de configurar todos los elementos en un objeto real conPyList_SetItem()
.
-
Py_ssize_t
PyList_Size
(PyObject *list)¶ Retorna la longitud del objeto lista en list; esto es equivalente a
len(list)
en un objeto lista.
-
Py_ssize_t
PyList_GET_SIZE
(PyObject *list)¶ Forma macro de
PyList_Size()
sin comprobación de errores.
-
PyObject*
PyList_GetItem
(PyObject *list, Py_ssize_t index)¶ - Return value: Borrowed reference.
Retorna el objeto en la posición index en la lista a la que apunta list. La posición no debe ser negativa; La indexación desde el final de la lista no es compatible. Si index está fuera de los límites (<0 o >= len(list)), retorna
NULL
y establece una excepciónIndexError
.
-
PyObject*
PyList_GET_ITEM
(PyObject *list, Py_ssize_t i)¶ - Return value: Borrowed reference.
Forma macro de
PyList_GetItem()
sin comprobación de errores.
-
int
PyList_SetItem
(PyObject *list, Py_ssize_t index, PyObject *item)¶ Establece el elemento en el índice index en la lista a item. Retorna
0
en caso de éxito. Si index está fuera de límites, retorna-1
y establece una excepciónIndexError
.Nota
Esta función «roba» una referencia a item y descarta una referencia a un elemento que ya está en la lista en la posición afectada.
-
void
PyList_SET_ITEM
(PyObject *list, Py_ssize_t i, PyObject *o)¶ Forma macro de
PyList_SetItem()
sin comprobación de errores. Esto normalmente solo se usa para completar nuevas listas donde no hay contenido anterior.Nota
Este macro «roba» una referencia a item y, a diferencia de
PyList_SetItem()
, no descarta una referencia a ningún elemento que se está reemplazando; cualquier referencia en list en la posición i se filtrará.
-
int
PyList_Insert
(PyObject *list, Py_ssize_t index, PyObject *item)¶ Inserta el elemento item en la lista list delante del índice index. Retorna
0
si tiene éxito; retorna-1
y establece una excepción si no tiene éxito. Análogo alist.insert(index, item)
.
-
int
PyList_Append
(PyObject *list, PyObject *item)¶ Agrega el objeto item al final de la lista list. Retorna
0
si tiene éxito; retorna-1
y establece una excepción si no tiene éxito. Análogo alist.append(item)
.
-
PyObject*
PyList_GetSlice
(PyObject *list, Py_ssize_t low, Py_ssize_t high)¶ - Return value: New reference.
Retorna una lista de los objetos en list que contiene los objetos between, low y high. Retorna
NULL
y establece una excepción si no tiene éxito. Análogo alist[low:high]
. La indexación desde el final de la lista no es compatible.
-
int
PyList_SetSlice
(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)¶ Establece el segmento de list entre low y high para el contenido de itemlist. Análogo a
list[low:high] = itemlist
. La lista itemlist puede serNULL
, lo que indica la asignación de una lista vacía (eliminación de segmentos). Retorna0
en caso de éxito,-1
en caso de error. La indexación desde el final de la lista no es compatible.
-
int
PyList_Sort
(PyObject *list)¶ Ordena los elementos de list en su lugar. Retorna
0
en caso de éxito,-1
en caso de error. Esto es equivalente alist.sort()
.