新聞中心
集合對(duì)象
這一節(jié)詳細(xì)介紹了針對(duì) set 和 frozenset 對(duì)象的公共 API。 任何未在下面列出的功能最好是使用抽象對(duì)象協(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 的子類型被用來(lái)保存 set 和 frozenset 對(duì)象的內(nèi)部數(shù)據(jù)。 它類似于 PyDictObject 的地方在于對(duì)小尺寸集合來(lái)說(shuō)它是固定大小的(很像元組的存儲(chǔ)方式),而對(duì)于中等和大尺寸集合來(lái)說(shuō)它將指向單獨(dú)的可變大小的內(nèi)存塊(很像列表的存儲(chǔ)方式)。 此結(jié)構(gòu)體的字段不應(yīng)被視為公有并且可能發(fā)生改變。 所有訪問(wèn)都應(yīng)當(dāng)通過(guò)已寫入文檔的 API 來(lái)進(jìn)行而不可通過(guò)直接操縱結(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 對(duì)象的指針。 類似地,這些構(gòu)造函數(shù)也適用于任意可迭代的 Python 對(duì)象。
int PySet_Check(PyObject *p)
如果 p 是一個(gè) set 對(duì)象或者是其子類型的實(shí)例則返回真值。 此函數(shù)總是會(huì)成功執(zhí)行。
int PyFrozenSet_Check(PyObject *p)
如果 p 是一個(gè) frozenset 對(duì)象或者是其子類型的實(shí)例則返回真值。 此函數(shù)總是會(huì)成功執(zhí)行。
int PyAnySet_Check(PyObject *p)
如果 p 是一個(gè) set 對(duì)象、frozenset 對(duì)象或者是其子類型的實(shí)例則返回真值。 此函數(shù)總是會(huì)成功執(zhí)行。
int PySet_CheckExact(PyObject *p)
如果 p 是一個(gè) set 對(duì)象但不是其子類型的實(shí)例則返回真值。 此函數(shù)總是會(huì)成功執(zhí)行。
3.10 新版功能.
int PyAnySet_CheckExact(PyObject *p)
如果 p 是一個(gè) set 或 frozenset 對(duì)象但不是其子類型的實(shí)例則返回真值。 此函數(shù)總是會(huì)成功執(zhí)行。
int PyFrozenSet_CheckExact(PyObject *p)
如果 p 是一個(gè) frozenset 對(duì)象但不是其子類型的實(shí)例則返回真值。 此函數(shù)總是會(huì)成功執(zhí)行。
PyObject *PySet_New(PyObject *iterable)
Return value: New reference. Part of the Stable ABI.
返回一個(gè)新的 set,其中包含 iterable 所返回的對(duì)象。 iterable 可以為 NULL 表示創(chuàng)建一個(gè)新的空集合。 成功時(shí)返回新的集合,失敗時(shí)返回 NULL。 如果 iterable 實(shí)際上不是可迭代對(duì)象則引發(fā) TypeError。 該構(gòu)造器也適用于拷貝集合 (c=set(s))。
PyObject *PyFrozenSet_New(PyObject *iterable)
Return value: New reference. Part of the Stable ABI.
返回一個(gè)新的 frozenset,其中包含 iterable 所返回的對(duì)象。 iterable 可以為 NULL 表示創(chuàng)建一個(gè)新的空凍結(jié)集合。 成功時(shí)返回新的凍結(jié)集合,失敗時(shí)返回 NULL。 如果 iterable 實(shí)際上不是可迭代對(duì)象則引發(fā) TypeError。
下列函數(shù)和宏適用于 set 或 frozenset 的實(shí)例或是其子類型的實(shí)例。
Py_ssize_t PySet_Size(PyObject *anyset)
Part of the Stable ABI.
返回 set 或 frozenset 對(duì)象的長(zhǎng)度。 等價(jià)于 len(anyset)。 如果 anyset 不是 set, frozenset 或其子類型的實(shí)例則會(huì)引發(fā) PyExc_SystemError。
Py_ssize_t PySet_GET_SIZE(PyObject *anyset)
宏版本的 PySet_Size(),不帶錯(cuò)誤檢測(cè)。
int PySet_Contains(PyObject *anyset, PyObject *key)
Part of the Stable ABI.
如果找到返回 1,如果未找到返回 0,如果遇到錯(cuò)誤則返回 -1。 不同于 Python __contains__() 方法,此函數(shù)不會(huì)自動(dòng)將不可哈希的集合轉(zhuǎn)換為臨時(shí)的凍結(jié)集合。 如果 key 為不可哈希對(duì)象則會(huì)引發(fā) TypeError。 如果 anyset 不是 set, frozenset 或其子類型的實(shí)例則會(huì)引發(fā) PyExc_SystemError。
int PySet_Add(PyObject *set, PyObject *key)
Part of the Stable ABI.
添加 key 到一個(gè) set 實(shí)例。 也可用于 frozenset 實(shí)例(與 PyTuple_SetItem() 的類似之處是它也可被用來(lái)為全新的凍結(jié)集合在公開(kāi)給其他代碼之前填充全新的值)。 成功時(shí)返回 0 而失敗時(shí)返回 -1。 如果 key 為不可哈希對(duì)象則會(huì)引發(fā) TypeError。 如果沒(méi)有增長(zhǎng)空間則會(huì)引發(fā) MemoryError。 如果 set 不是 set 或其子類型的實(shí)例則會(huì)引發(fā) SystemError。
下列函數(shù)適用于 set 或其子類型的實(shí)例,但不可用于 frozenset 或其子類型的實(shí)例。
int PySet_Discard(PyObject *set, PyObject *key)
Part of the Stable ABI.
如果找到并移除返回 1,如果未找到(無(wú)操作)返回 0,如果遇到錯(cuò)誤則返回 -1。 對(duì)于不存在的鍵不會(huì)引發(fā) KeyError。 如果 key 為不可哈希對(duì)象則會(huì)引發(fā) TypeError。 不同于 Python discard() 方法,此函數(shù)不會(huì)自動(dòng)將不可哈希的集合轉(zhuǎn)換為臨時(shí)的凍結(jié)集合。 如果 set 不是 set 或其子類型的實(shí)例則會(huì)引發(fā) PyExc_SystemError。
PyObject *PySet_Pop(PyObject *set)
Return value: New reference. Part of the Stable ABI.
返回 set 中任意對(duì)象的新引用,并從 set 中移除該對(duì)象。 失敗時(shí)返回 NULL。 如果集合為空則會(huì)引發(fā) KeyError。 如果 set 不是 set 或其子類型的實(shí)例則會(huì)引發(fā) SystemError。
int PySet_Clear(PyObject *set)
Part of the Stable ABI.
清空現(xiàn)有字典的所有鍵值對(duì)。
網(wǎng)站題目:創(chuàng)新互聯(lián)Python教程:集合對(duì)象
文章地址:http://www.dlmjj.cn/article/cohscsp.html


咨詢
建站咨詢
