新聞中心
集合對象
這一節(jié)詳細(xì)介紹了針對 set 和 frozenset 對象的公共 API。 任何未在下面列出的功能最好是使用抽象對象協(xié)議 (包括 PyObject_CallMethod(), PyObject_RichCompareBool(), PyObject_Hash(), PyObject_Repr(), PyObject_IsTrue(), PyObject_Print() 以及 PyObject_GetIter()) 或者抽象數(shù)字協(xié)議 (包括 PyNumber_And(), PyNumber_Subtract(), PyNumber_Or(), PyNumber_Xor(), PyNumber_InPlaceAnd(), PyNumber_InPlaceSubtract(), PyNumber_InPlaceOr() 以及 PyNumber_InPlaceXor())。

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的寧河網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
type PySetObject
這個(gè) PyObject 的子類型被用來保存 set 和 frozenset 對象的內(nèi)部數(shù)據(jù)。 它類似于 PyDictObject 的地方在于對小尺寸集合來說它是固定大小的(很像元組的存儲方式),而對于中等和大尺寸集合來說它將指向單獨(dú)的可變大小的內(nèi)存塊(很像列表的存儲方式)。 此結(jié)構(gòu)體的字段不應(yīng)被視為公有并且可能發(fā)生改變。 所有訪問都應(yīng)當(dāng)通過已寫入文檔的 API 來進(jìn)行而不可通過直接操縱結(jié)構(gòu)體中的值。
PyTypeObject PySet_Type
Part of the Stable ABI.
這是一個(gè) PyTypeObject 實(shí)例,表示 python set 類型。
PyTypeObject PyFrozenSet_Type
Part of the Stable ABI.
這是一個(gè) PyTypeObject 實(shí)例,表示 Python frozenset 類型。
下列類型檢查宏適用于指向任意 Python 對象的指針。 類似地,這些構(gòu)造函數(shù)也適用于任意可迭代的 Python 對象。
int PySet_Check(PyObject *p)
如果 p 是一個(gè) set 對象或者是其子類型的實(shí)例則返回真值。 此函數(shù)總是會成功執(zhí)行。
int PyFrozenSet_Check(PyObject *p)
如果 p 是一個(gè) frozenset 對象或者是其子類型的實(shí)例則返回真值。 此函數(shù)總是會成功執(zhí)行。
int PyAnySet_Check(PyObject *p)
如果 p 是一個(gè) set 對象、frozenset 對象或者是其子類型的實(shí)例則返回真值。 此函數(shù)總是會成功執(zhí)行。
int PySet_CheckExact(PyObject *p)
如果 p 是一個(gè) set 對象但不是其子類型的實(shí)例則返回真值。 此函數(shù)總是會成功執(zhí)行。
3.10 新版功能.
int PyAnySet_CheckExact(PyObject *p)
如果 p 是一個(gè) set 或 frozenset 對象但不是其子類型的實(shí)例則返回真值。 此函數(shù)總是會成功執(zhí)行。
int PyFrozenSet_CheckExact(PyObject *p)
如果 p 是一個(gè) frozenset 對象但不是其子類型的實(shí)例則返回真值。 此函數(shù)總是會成功執(zhí)行。
PyObject *PySet_New(PyObject *iterable)
Return value: New reference. Part of the Stable ABI.
返回一個(gè)新的 set,其中包含 iterable 所返回的對象。 iterable 可以為 NULL 表示創(chuàng)建一個(gè)新的空集合。 成功時(shí)返回新的集合,失敗時(shí)返回 NULL。 如果 iterable 實(shí)際上不是可迭代對象則引發(fā) TypeError。 該構(gòu)造器也適用于拷貝集合 (c=set(s))。
PyObject *PyFrozenSet_New(PyObject *iterable)
Return value: New reference. Part of the Stable ABI.
返回一個(gè)新的 frozenset,其中包含 iterable 所返回的對象。 iterable 可以為 NULL 表示創(chuàng)建一個(gè)新的空凍結(jié)集合。 成功時(shí)返回新的凍結(jié)集合,失敗時(shí)返回 NULL。 如果 iterable 實(shí)際上不是可迭代對象則引發(fā) TypeError。
下列函數(shù)和宏適用于 set 或 frozenset 的實(shí)例或是其子類型的實(shí)例。
Py_ssize_t PySet_Size(PyObject *anyset)
Part of the Stable ABI.
返回 set 或 frozenset 對象的長度。 等價(jià)于 len(anyset)。 如果 anyset 不是 set, frozenset 或其子類型的實(shí)例則會引發(fā) PyExc_SystemError。
Py_ssize_t PySet_GET_SIZE(PyObject *anyset)
宏版本的 PySet_Size(),不帶錯(cuò)誤檢測。
int PySet_Contains(PyObject *anyset, PyObject *key)
Part of the Stable ABI.
如果找到返回 1,如果未找到返回 0,如果遇到錯(cuò)誤則返回 -1。 不同于 Python __contains__() 方法,此函數(shù)不會自動(dòng)將不可哈希的集合轉(zhuǎn)換為臨時(shí)的凍結(jié)集合。 如果 key 為不可哈希對象則會引發(fā) TypeError。 如果 anyset 不是 set, frozenset 或其子類型的實(shí)例則會引發(fā) PyExc_SystemError。
int PySet_Add(PyObject *set, PyObject *key)
Part of the Stable ABI.
添加 key 到一個(gè) set 實(shí)例。 也可用于 frozenset 實(shí)例(與 PyTuple_SetItem() 的類似之處是它也可被用來為全新的凍結(jié)集合在公開給其他代碼之前填充全新的值)。 成功時(shí)返回 0 而失敗時(shí)返回 -1。 如果 key 為不可哈希對象則會引發(fā) TypeError。 如果沒有增長空間則會引發(fā) MemoryError。 如果 set 不是 set 或其子類型的實(shí)例則會引發(fā) SystemError。
下列函數(shù)適用于 set 或其子類型的實(shí)例,但不可用于 frozenset 或其子類型的實(shí)例。
int PySet_Discard(PyObject *set, PyObject *key)
Part of the Stable ABI.
如果找到并移除返回 1,如果未找到(無操作)返回 0,如果遇到錯(cuò)誤則返回 -1。 對于不存在的鍵不會引發(fā) KeyError。 如果 key 為不可哈希對象則會引發(fā) TypeError。 不同于 Python discard() 方法,此函數(shù)不會自動(dòng)將不可哈希的集合轉(zhuǎn)換為臨時(shí)的凍結(jié)集合。 如果 set 不是 set 或其子類型的實(shí)例則會引發(fā) PyExc_SystemError。
PyObject *PySet_Pop(PyObject *set)
Return value: New reference. Part of the Stable ABI.
返回 set 中任意對象的新引用,并從 set 中移除該對象。 失敗時(shí)返回 NULL。 如果集合為空則會引發(fā) KeyError。 如果 set 不是 set 或其子類型的實(shí)例則會引發(fā) SystemError。
int PySet_Clear(PyObject *set)
Part of the Stable ABI.
清空現(xiàn)有字典的所有鍵值對。
名稱欄目:創(chuàng)新互聯(lián)Python教程:集合對象
網(wǎng)頁地址:http://www.fisionsoft.com.cn/article/cohscsp.html


咨詢
建站咨詢
