List Objects
pair: object; list
This subtype of
PyObjectrepresents a Python list object.
This instance of
PyTypeObjectrepresents the Python list type. This is the same object aslistin the Python layer.
Return true if p is a list object or an instance of a subtype of the list type. This function always succeeds.
Return true if p is a list object, but not an instance of a subtype of the list type. This function always succeeds.
Return a new list of length len on success, or
NULLon failure.[!NOTE] If len is greater than zero, the returned list object's items are set to
NULL. Thus you cannot use abstract API functions such asPySequence_SetItemor expose the object to Python code before setting all items to a real object withPyList_SetItemorPyList_SET_ITEM(). The following APIs are safe APIs before the list is fully initialized:PyList_SetItem()andPyList_SET_ITEM().
pair: built-in function; len
Return the length of the list object in list; this is equivalent to
len(list)on a list object.
Similar to
PyList_Size, but without error checking.
Return the object at position index in the list pointed to by list. The position must be non-negative; indexing from the end of the list is not supported. If index is out of bounds (
<0 or >=len(list)), returnNULLand set anIndexErrorexception.3.13
Like
PyList_GetItemRef, but returns aborrowed referenceinstead of astrong reference.[!NOTE] In the
free-threaded build, the returnedborrowed referencemay become invalid if another thread modifies the list concurrently. PreferPyList_GetItemRef, which returns astrong reference.
Similar to
PyList_GetItem, but without error checking.[!NOTE] In the
free-threaded build, the returnedborrowed referencemay become invalid if another thread modifies the list concurrently. PreferPyList_GetItemRef, which returns astrong reference.
Set the item at index index in list to item. Return
0on success. If index is out of bounds, return-1and set anIndexErrorexception.[!NOTE] This function "
steals <steal>" a reference to item, even on error. On success, it discards a reference to an item already in the list at the affected position (unless it wasNULL).
Macro form of
PyList_SetItemwithout error checking. This is normally only used to fill in new lists where there is no previous content.Bounds checking is performed as an assertion if Python is built in
debug mode <debug-build>orwith assertions <--with-assertions>.[!NOTE] This macro "
steals <steal>" a reference to item, and, unlikePyList_SetItem, does not discard a reference to any item that is being replaced; any reference in list at position i will be leaked.[!NOTE] In the
free-threaded build, this macro has no internal synchronization. It is normally only used to fill in new lists where no other thread has a reference to the list. If the list may be shared, usePyList_SetIteminstead, which uses aper-object lock.
Insert the item item into list list in front of index index. Return
0if successful; return-1and set an exception if unsuccessful. Analogous tolist.insert(index, item).
Append the object item at the end of list list. Return
0if successful; return-1and set an exception if unsuccessful. Analogous tolist.append(item).
Return a list of the objects in list containing the objects between low and high. Return
NULLand set an exception if unsuccessful. Analogous tolist[low:high]. Indexing from the end of the list is not supported.
Set the slice of list between low and high to the contents of itemlist. Analogous to
list[low:high] = itemlist. The itemlist may beNULL, indicating the assignment of an empty list (slice deletion). Return0on success,-1on failure. Indexing from the end of the list is not supported.[!NOTE] In the
free-threaded build, when itemlist is alist, both list and itemlist are locked for the duration of the operation. For other iterables (orNULL), only list is locked.
Extend list with the contents of iterable. This is the same as
PyList_SetSlice(list, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, iterable)and analogous tolist.extend(iterable)orlist += iterable.Raise an exception and return
-1if list is not alistobject. Return 0 on success.3.13
[!NOTE] In the
free-threaded build, when iterable is alist,set,dict, or dict view, both list and iterable (or its underlying dict) are locked for the duration of the operation. For other iterables, only list is locked; iterable may be concurrently modified by another thread.
Remove all items from list. This is the same as
PyList_SetSlice(list, 0, PY_SSIZE_T_MAX, NULL)and analogous tolist.clear()ordel list[:].Raise an exception and return
-1if list is not alistobject. Return 0 on success.3.13
Sort the items of list in place. Return
0on success,-1on failure. This is equivalent tolist.sort().[!NOTE] In the
free-threaded build, element comparison via~object.__lt__can execute arbitrary Python code, during which theper-object lockmay be temporarily released. For built-in types (str,int,float), the lock is not released during comparison.
Reverse the items of list in place. Return
0on success,-1on failure. This is the equivalent oflist.reverse().
pair: built-in function; tuple
Return a new tuple object containing the contents of list; equivalent to
tuple(list).
谢谢你的反馈!