Протокол послідовності

int PySequence_Check(PyObject *o)
Part of the Stable ABI.

Return 1 if the object provides the sequence protocol, and 0 otherwise. Note that it returns 1 for Python classes with a __getitem__() method, unless they are dict subclasses, since in general it is impossible to determine what type of keys the class supports. This function always succeeds.

Py_ssize_t PySequence_Size(PyObject *o)
Py_ssize_t PySequence_Length(PyObject *o)
Part of the Stable ABI.

Повертає кількість об’єктів у послідовності o в разі успіху та -1 в разі невдачі. Це еквівалентно виразу Python len(o).

PyObject *PySequence_Concat(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає конкатенацію o1 і o2 у разі успіху та NULL у разі невдачі. Це еквівалент виразу Python o1 + o2.

PyObject *PySequence_Repeat(PyObject *o, Py_ssize_t count)
Return value: New reference. Part of the Stable ABI.

Повертає результат повторення об’єкта послідовності o count разів або NULL у разі помилки. Це еквівалент виразу Python o * count.

PyObject *PySequence_InPlaceConcat(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає конкатенацію o1 і o2 у разі успіху та NULL у разі невдачі. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент виразу Python o1 += o2.

PyObject *PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)
Return value: New reference. Part of the Stable ABI.

Повертає результат повторення об’єкта послідовності o count разів або NULL у разі помилки. Операція виконується на місці, якщо o її підтримує. Це еквівалент виразу Python o *= count.

PyObject *PySequence_GetItem(PyObject *o, Py_ssize_t i)
Return value: New reference. Part of the Stable ABI.

Повертає i-й елемент o або NULL у разі помилки. Це еквівалент виразу Python o[i].

PyObject *PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)
Return value: New reference. Part of the Stable ABI.

Повертає зріз об’єкта послідовності o між i1 і i2 або NULL у разі помилки. Це еквівалент виразу Python o[i1:i2].

int PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v)
Part of the Stable ABI.

Призначте об’єкт v до iго елемента o. Викликати виняток і повертати -1 у разі помилки; повернути 0 в разі успіху. Це еквівалент оператора Python o[i] = v. Ця функція не викрадає посилання на v.

Якщо v має значення NULL, елемент видаляється, але ця функція застаріла на користь використання PySequence_DelItem().

int PySequence_DelItem(PyObject *o, Py_ssize_t i)
Part of the Stable ABI.

Видалити ith елемент об’єкта o. Повертає -1 у разі помилки. Це еквівалент оператора Python del o[i].

int PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2, PyObject *v)
Part of the Stable ABI.

Призначте об’єкт послідовності v фрагменту в об’єкті послідовності o від i1 до i2. Це еквівалент оператора Python o[i1:i2] = v.

int PySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)
Part of the Stable ABI.

Видалити фрагмент у послідовному об’єкті o від i1 до i2. Повертає -1 у разі помилки. Це еквівалент оператора Python del o[i1:i2].

Py_ssize_t PySequence_Count(PyObject *o, PyObject *value)
Part of the Stable ABI.

Повертає кількість входжень value у o, тобто повертає кількість ключів, для яких o[key] == value. У разі помилки поверніть -1. Це еквівалентно виразу Python o.count(value).

int PySequence_Contains(PyObject *o, PyObject *value)
Part of the Stable ABI.

Визначте, чи o містить value. Якщо елемент у o дорівнює value, поверніть 1, інакше поверніть 0. У разі помилки повертає -1. Це еквівалентно виразу Python значення в o.

Py_ssize_t PySequence_Index(PyObject *o, PyObject *value)
Part of the Stable ABI.

Повертає перший індекс i, для якого o[i] == значення. У разі помилки повертає -1. Це еквівалентно виразу Python o.index(value).

PyObject *PySequence_List(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Повертає об’єкт списку з тим же вмістом, що й послідовність або ітерація o, або NULL у разі помилки. Повернений список гарантовано буде новим. Це еквівалентно виразу Python list(o).

PyObject *PySequence_Tuple(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Повертає об’єкт кортежу з тим самим вмістом, що й послідовність або повторюваний o, або NULL у разі помилки. Якщо o є кортежем, буде повернуто нове посилання, інакше буде створено кортеж із відповідним вмістом. Це еквівалентно виразу Python tuple(o).

PyObject *PySequence_Fast(PyObject *o, const char *m)
Return value: New reference. Part of the Stable ABI.

Повертає послідовність або ітерацію o як об’єкт, який можна використовувати іншою сім’єю функцій PySequence_Fast*. Якщо об’єкт не є послідовністю або ітерацією, викликає TypeError з m як текст повідомлення. Повертає NULL у разі помилки.

Функції PySequence_Fast* названо так, оскільки вони припускають, що o є PyTupleObject або PyListObject і мають прямий доступ до полів даних o.

Як деталь реалізації CPython, якщо o вже є послідовністю або списком, він буде повернутий.

Py_ssize_t PySequence_Fast_GET_SIZE(PyObject *o)

Повертає довжину o, припускаючи, що o було повернуто PySequence_Fast() і що o не є NULL. Розмір також можна отримати, викликавши PySequence_Size() на o, але PySequence_Fast_GET_SIZE() швидше, тому що він може припускати, що o є списком або кортежем.

PyObject *PySequence_Fast_GET_ITEM(PyObject *o, Py_ssize_t i)
Return value: Borrowed reference.

Повертає i-й елемент o, припускаючи, що o було повернуто PySequence_Fast(), o не є NULL і що i знаходиться в межах.

PyObject **PySequence_Fast_ITEMS(PyObject *o)

Повертає базовий масив покажчиків PyObject. Припускає, що o було повернуто PySequence_Fast() і o не є NULL.

Зверніть увагу: якщо розмір списку змінено, перерозподіл може перемістити масив елементів. Отже, використовуйте покажчик базового масиву лише в контекстах, де послідовність не може змінитися.

PyObject *PySequence_ITEM(PyObject *o, Py_ssize_t i)
Return value: New reference.

Повертає i-й елемент o або NULL у разі помилки. Швидша форма PySequence_GetItem(), але без перевірки того, що PySequence_Check() на o є істинним, і без коригування негативних індексів.