Liệt kê các đối tượng¶
-
PyTypeObject PyList_Type¶
- Một phần của ABI ổn định.
Phiên bản
PyTypeObjectnày đại diện cho loại danh sách Python. Đây là đối tượng tương tự nhưlisttrong lớp Python.
-
int PyList_Check(PyObject *p)¶
- Thread safety: Atomic.
Trả về true nếu p là một đối tượng danh sách hoặc một thể hiện của một kiểu con của loại danh sách. Chức năng này luôn thành công.
-
int PyList_CheckExact(PyObject *p)¶
- Thread safety: Atomic.
Trả về true nếu p là đối tượng danh sách nhưng không phải là phiên bản của kiểu con của loại danh sách. Chức năng này luôn thành công.
-
PyObject *PyList_New(Py_ssize_t len)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định. Thread safety: Atomic.
Trả về danh sách mới có độ dài len nếu thành công hoặc
NULLnếu thất bại.Ghi chú
Nếu len lớn hơn 0, các mục của đối tượng danh sách trả về sẽ được đặt thành
NULL. Do đó, bạn không thể sử dụng các hàm API trừu tượng nhưPySequence_SetItem()hoặc hiển thị đối tượng với mã Python trước khi đặt tất cả các mục thành một đối tượng thực bằngPyList_SetItem()hoặcPyList_SET_ITEM(). Các API sau đây là các API an toàn trước khi danh sách được khởi tạo đầy đủ:PyList_SetItem()vàPyList_SET_ITEM().
-
Py_ssize_t PyList_Size(PyObject *list)¶
- Một phần của ABI ổn định. Thread safety: Atomic.
Trả về độ dài của đối tượng danh sách theo list; điều này tương đương với
len(list)trên một đối tượng danh sách.
-
Py_ssize_t PyList_GET_SIZE(PyObject *list)¶
- Thread safety: Atomic.
Tương tự như
PyList_Size()nhưng không có tính năng kiểm tra lỗi.
-
PyObject *PyList_GetItemRef(PyObject *list, Py_ssize_t index)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định kể từ phiên bản 3.13. Thread safety: Atomic.
Trả đối tượng về vị trí index trong danh sách được list trỏ tới. Vị trí phải không âm; lập chỉ mục từ cuối danh sách không được hỗ trợ. Nếu index nằm ngoài giới hạn (
<0 or >=len(list)), hãy trả vềNULLvà đặt ngoại lệIndexError.Added in version 3.13.
-
PyObject *PyList_GetItem(PyObject *list, Py_ssize_t index)¶
- Giá trị trả về: Tham chiếu mượn. Một phần của ABI ổn định. Thread safety: Safe to call from multiple threads with external synchronization only.
Giống như
PyList_GetItemRef(), nhưng trả về borrowed reference thay vì strong reference.Ghi chú
Trong free-threaded build, borrowed reference được trả về có thể không hợp lệ nếu một luồng khác sửa đổi danh sách đồng thời. Thích
PyList_GetItemRef(), trả về strong reference.
-
PyObject *PyList_GET_ITEM(PyObject *list, Py_ssize_t i)¶
- Giá trị trả về: Tham chiếu mượn. Thread safety: Safe to call from multiple threads with external synchronization only.
Tương tự như
PyList_GetItem()nhưng không có tính năng kiểm tra lỗi.Ghi chú
Trong free-threaded build, borrowed reference được trả về có thể không hợp lệ nếu một luồng khác sửa đổi danh sách đồng thời. Thích
PyList_GetItemRef(), trả về strong reference.
-
int PyList_SetItem(PyObject *list, Py_ssize_t index, PyObject *item)¶
- Một phần của ABI ổn định. Thread safety: Atomic.
Đặt mục ở chỉ mục index trong danh sách thành item. Trả về
0khi thành công. Nếu index nằm ngoài giới hạn, hãy trả về-1và đặt ngoại lệIndexError.Ghi chú
Hàm này "đánh cắp" tham chiếu đến item và loại bỏ tham chiếu đến một mục đã có trong danh sách ở vị trí bị ảnh hưởng.
-
void PyList_SET_ITEM(PyObject *list, Py_ssize_t i, PyObject *o)¶
- Thread safety: Safe to call from multiple threads with external synchronization only.
Dạng macro của
PyList_SetItem()không kiểm tra lỗi. Điều này thường chỉ được sử dụng để điền vào danh sách mới không có nội dung trước đó.Việc kiểm tra giới hạn được thực hiện dưới dạng xác nhận nếu Python được tích hợp trong debug mode hoặc
with assertions.Ghi chú
Macro này "đánh cắp" tham chiếu đến item và không giống như
PyList_SetItem(), not loại bỏ tham chiếu đến bất kỳ mục nào đang được thay thế; mọi tham chiếu trong list tại vị trí i sẽ bị rò rỉ.Ghi chú
Trong free-threaded build, macro này không có đồng bộ hóa nội bộ. Nó thường chỉ được sử dụng để điền vào danh sách mới mà không có chủ đề nào khác có tham chiếu đến danh sách. Nếu danh sách có thể được chia sẻ, thay vào đó hãy sử dụng
PyList_SetItem(), sử dụng per-object lock.
-
int PyList_Insert(PyObject *list, Py_ssize_t index, PyObject *item)¶
- Một phần của ABI ổn định. Thread safety: Safe for concurrent use on the same object.
Chèn mục item vào danh sách list trước chỉ mục index. Trả về
0nếu thành công; trả về-1và đặt ngoại lệ nếu không thành công. Tương tự vớilist.insert(index, item).
-
int PyList_Append(PyObject *list, PyObject *item)¶
- Một phần của ABI ổn định. Thread safety: Atomic.
Nối đối tượng item vào cuối danh sách list. Trả về
0nếu thành công; trả về-1và đặt ngoại lệ nếu không thành công. Tương tự vớilist.append(item).
-
PyObject *PyList_GetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định. Thread safety: Atomic.
Trả về danh sách các đối tượng trong list chứa các đối tượng between low và high. Trả về
NULLvà đặt ngoại lệ nếu không thành công. Tương tự vớilist[low:high]. Lập chỉ mục từ cuối danh sách không được hỗ trợ.
-
int PyList_SetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)¶
- Một phần của ABI ổn định. Thread safety: Safe for concurrent use on the same object.
Đặt lát list giữa low và high thành nội dung của itemlist. Tương tự với
list[low:high] = itemlist. Zz008zz có thể làNULL, biểu thị việc gán một danh sách trống (xóa lát). Trả về0nếu thành công,-1nếu thất bại. Lập chỉ mục từ cuối danh sách không được hỗ trợ.Ghi chú
Trong free-threaded build, khi itemlist là
list, cả list và itemlist đều bị khóa trong suốt thời gian hoạt động. Đối với các lần lặp khác (hoặcNULL), chỉ list bị khóa.
-
int PyList_Extend(PyObject *list, PyObject *iterable)¶
- Thread safety: Safe for concurrent use on the same object.
Mở rộng list với nội dung của iterable. Điều này giống với
PyList_SetSlice(list, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, iterable)và tương tự vớilist.extend(iterable)hoặclist += iterable.Đưa ra một ngoại lệ và trả về
-1nếu list không phải là đối tượnglist. Trả về 0 khi thành công.Added in version 3.13.
Ghi chú
Trong free-threaded build, khi iterable là chế độ xem
list,set,dicthoặc dict, cả list và iterable (hoặc dict cơ bản của nó) đều bị khóa trong suốt thời gian hoạt động. Đối với các lần lặp khác, chỉ list bị khóa; iterable có thể được sửa đổi đồng thời bởi một luồng khác.
-
int PyList_Clear(PyObject *list)¶
- Thread safety: Atomic.
Xóa tất cả các mục khỏi list. Điều này giống với
PyList_SetSlice(list, 0, PY_SSIZE_T_MAX, NULL)và tương tự vớilist.clear()hoặcdel list[:].Đưa ra một ngoại lệ và trả về
-1nếu list không phải là đối tượnglist. Trả về 0 khi thành công.Added in version 3.13.
-
int PyList_Sort(PyObject *list)¶
- Một phần của ABI ổn định. Thread safety: Safe for concurrent use on the same object.
Sắp xếp các mục của list vào đúng vị trí. Trả về
0nếu thành công,-1nếu thất bại. Điều này tương đương vớilist.sort().Ghi chú
Trong free-threaded build, so sánh phần tử thông qua
__lt__()có thể thực thi mã Python tùy ý, trong thời gian đó per-object lock có thể được phát hành tạm thời. Đối với các loại tích hợp (str,int,float), khóa không được nhả trong quá trình so sánh.
-
int PyList_Reverse(PyObject *list)¶
- Một phần của ABI ổn định. Thread safety: Safe for concurrent use on the same object.
Đảo ngược các mục của list tại chỗ. Trả về
0nếu thành công,-1nếu thất bại. Điều này tương đương vớilist.reverse().
-
PyObject *PyList_AsTuple(PyObject *list)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định. Thread safety: Atomic.
Trả về một đối tượng tuple mới chứa nội dung của list; tương đương với
tuple(list).