Listenobjekte

type PyListObject

Dieser Untertyp von PyObject repräsentiert ein Python-Listenobjekt.

PyTypeObject PyList_Type
Teil der Stable ABI.

Diese Instanz von PyTypeObject repräsentiert den Python-Listentyp. Dies ist dasselbe Objekt wie list in der Python-Schicht.

int PyList_Check(PyObject *p)

Gibt wahr zurück, wenn p ein Listenobjekt oder eine Instanz eines Untertyps des Listentyps ist. Diese Funktion ist immer erfolgreich.

int PyList_CheckExact(PyObject *p)

Gibt wahr zurück, wenn p ein Listenobjekt ist, aber keine Instanz eines Untertyps des Listentyps. Diese Funktion ist immer erfolgreich.

PyObject *PyList_New(Py_ssize_t len)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt bei Erfolg eine neue Liste der Länge len zurück, bei Fehler NULL.

Hinweis

Wenn len größer als null ist, werden die Elemente des zurückgegebenen Listenobjekts auf NULL gesetzt. Daher können Sie keine abstrakten API-Funktionen wie PySequence_SetItem() verwenden oder das Objekt für Python-Code freigeben, bevor alle Elemente mit PyList_SetItem() oder PyList_SET_ITEM() auf ein echtes Objekt gesetzt wurden. Die folgenden APIs sind sichere APIs, bevor die Liste vollständig initialisiert ist: PyList_SetItem() und PyList_SET_ITEM().

Py_ssize_t PyList_Size(PyObject *list)
Teil der Stable ABI.

Gibt die Länge des Listenobjekts in list zurück; dies ist äquivalent zu len(list) für ein Listenobjekt.

Py_ssize_t PyList_GET_SIZE(PyObject *list)

Ähnlich wie PyList_Size(), aber ohne Fehlerprüfung.

PyObject *PyList_GetItemRef(PyObject *list, Py_ssize_t index)
Rückgabewert: Neue Referenz. Teil der Stable ABI seit Version 3.13.

Gibt das Objekt an der Position index in der von list referenzierten Liste zurück. Die Position muss nicht-negativ sein; Indexierung vom Ende der Liste wird nicht unterstützt. Wenn index außerhalb der Grenzen liegt (<0 oder >=len(list)), wird NULL zurückgegeben und eine IndexError-Ausnahme gesetzt.

Hinzugefügt in Version 3.13.

PyObject *PyList_GetItem(PyObject *list, Py_ssize_t index)
Rückgabewert: Ausgeliehene Referenz. Teil der Stable ABI.

Ähnlich wie PyList_GetItemRef(), gibt aber eine ausgeliehene Referenz anstelle einer starken Referenz zurück.

PyObject *PyList_GET_ITEM(PyObject *list, Py_ssize_t i)
Rückgabewert: Entliehene Referenz.

Ähnlich wie PyList_GetItem(), aber ohne Fehlerprüfung.

int PyList_SetItem(PyObject *list, Py_ssize_t index, PyObject *item)
Teil der Stable ABI.

Setzt das Element am Index index in der Liste auf item. Gibt bei Erfolg 0 zurück. Wenn index außerhalb der Grenzen liegt, wird -1 zurückgegeben und eine IndexError-Ausnahme gesetzt.

Hinweis

Diese Funktion „stiehlt“ eine Referenz auf item und verwirft eine Referenz auf ein Element, das sich bereits an der betroffenen Position in der Liste befindet.

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

Makroform von PyList_SetItem() ohne Fehlerprüfung. Dies wird normalerweise nur zum Füllen neuer Listen verwendet, bei denen kein vorheriger Inhalt vorhanden ist.

Grenzenprüfung wird als Assertion durchgeführt, wenn Python im Debug-Modus oder mit Assertions erstellt wurde.

Hinweis

Dieses Makro „stiehlt“ eine Referenz auf item und verwirft im Gegensatz zu PyList_SetItem() keine Referenz auf ein zu ersetzendes Element; jede Referenz in list an Position i wird geleakt.

int PyList_Insert(PyObject *list, Py_ssize_t index, PyObject *item)
Teil der Stable ABI.

Fügt das Element item in die Liste list vor dem Index index ein. Gibt bei Erfolg 0 zurück; gibt bei Misserfolg -1 zurück und setzt eine Ausnahme. Analog zu list.insert(index, item).

int PyList_Append(PyObject *list, PyObject *item)
Teil der Stable ABI.

Fügt das Objekt item am Ende der Liste list an. Gibt bei Erfolg 0 zurück; gibt bei Misserfolg -1 zurück und setzt eine Ausnahme. Analog zu list.append(item).

PyObject *PyList_GetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt eine Liste der Objekte in list zurück, die die Objekte zwischen low und high enthalten. Gibt bei Misserfolg NULL zurück und setzt eine Ausnahme. Analog zu list[low:high]. Indexierung vom Ende der Liste wird nicht unterstützt.

int PyList_SetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)
Teil der Stable ABI.

Setzt den Slice von list zwischen low und high auf den Inhalt von itemlist. Analog zu list[low:high] = itemlist. itemlist kann NULL sein, was die Zuweisung einer leeren Liste (Slice-Löschung) bedeutet. Gibt bei Erfolg 0, bei Fehler -1 zurück. Indexierung vom Ende der Liste wird nicht unterstützt.

int PyList_Extend(PyObject *list, PyObject *iterable)

Erweitert list mit dem Inhalt von iterable. Dies ist dasselbe wie PyList_SetSlice(list, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, iterable) und analog zu list.extend(iterable) oder list += iterable.

Löst eine Ausnahme aus und gibt -1 zurück, wenn list kein list-Objekt ist. Gibt bei Erfolg 0 zurück.

Hinzugefügt in Version 3.13.

int PyList_Clear(PyObject *list)

Entfernt alle Elemente aus list. Dies ist dasselbe wie PyList_SetSlice(list, 0, PY_SSIZE_T_MAX, NULL) und analog zu list.clear() oder del list[:].

Löst eine Ausnahme aus und gibt -1 zurück, wenn list kein list-Objekt ist. Gibt bei Erfolg 0 zurück.

Hinzugefügt in Version 3.13.

int PyList_Sort(PyObject *list)
Teil der Stable ABI.

Sortiert die Elemente von list an Ort und Stelle. Gibt bei Erfolg 0, bei Fehler -1 zurück. Dies ist äquivalent zu list.sort().

int PyList_Reverse(PyObject *list)
Teil der Stable ABI.

Kehrt die Reihenfolge der Elemente von list an Ort und Stelle um. Gibt bei Erfolg 0, bei Fehler -1 zurück. Dies ist das Äquivalent zu list.reverse().

PyObject *PyList_AsTuple(PyObject *list)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt ein neues Tupelobjekt zurück, das den Inhalt von list enthält; äquivalent zu tuple(list).