Ställ in objekt¶
Detta avsnitt beskriver det publika API:et för objekten set och frozenset. All funktionalitet som inte listas nedan nås bäst med antingen det abstrakta objektprotokollet (inklusive PyObject_CallMethod(), PyObject_RichCompareBool(), PyObject_Hash(), PyObject_Repr(), PyObject_IsTrue(), PyObject_Print() och PyObject_GetIter()) eller det abstrakta nummerprotokollet (inklusive PyNumber_And(), PyNumber_Subtract(), PyNumber_Or(), PyNumber_Xor(), PyNumber_InPlaceAnd(), PyNumber_InPlaceSubtract(), PyNumber_InPlaceOr(), och PyNumber_InPlaceXor()).
-
type PySetObject¶
Denna subtyp av
PyObjectanvänds för att hålla interna data för bådesetochfrozensetobjekt. Det är som ettPyDictObjecti det att det har en fast storlek för små uppsättningar (ungefär som tuple-lagring) och kommer att peka på ett separat minnesblock med variabel storlek för medelstora och stora uppsättningar (ungefär som listlagring). Inget av fälten i den här strukturen ska betraktas som offentligt och alla kan ändras. All åtkomst bör ske genom det dokumenterade API:et snarare än genom att manipulera värdena i strukturen.
-
PyTypeObject PySet_Type¶
- En del av Stabil ABI.
Detta är en instans av
PyTypeObjectsom representerar Pythonset-typen.
-
PyTypeObject PyFrozenSet_Type¶
- En del av Stabil ABI.
Detta är en instans av
PyTypeObjectsom representerar Python-typenfrozenset.
Följande makron för typkontroll fungerar på pekare till alla Python-objekt. På samma sätt fungerar konstruktorfunktionerna med alla itererbara Python-objekt.
-
int PySet_Check(PyObject *p)¶
Returnerar true om p är ett
set-objekt eller en instans av en subtyp. Denna funktion lyckas alltid.
-
int PyFrozenSet_Check(PyObject *p)¶
Returnerar true om p är ett
frozenset-objekt eller en instans av en subtyp. Denna funktion lyckas alltid.
-
int PyAnySet_Check(PyObject *p)¶
Returnerar true om p är ett
set-objekt, ettfrozenset-objekt eller en instans av en subtyp. Denna funktion lyckas alltid.
-
int PySet_CheckExact(PyObject *p)¶
Returnerar true om p är ett
set-objekt men inte en instans av en subtyp. Denna funktion lyckas alltid.Tillagd i version 3.10.
-
int PyAnySet_CheckExact(PyObject *p)¶
Returnerar true om p är ett
set-objekt eller ettfrozenset-objekt men inte en instans av en subtyp. Denna funktion lyckas alltid.
-
int PyFrozenSet_CheckExact(PyObject *p)¶
Returnerar true om p är ett
frozenset-objekt men inte en instans av en subtyp. Denna funktion lyckas alltid.
-
PyObject *PySet_New(PyObject *iterable)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar en ny
setsom innehåller objekt som returneras av iterable. iterable kan varaNULLför att skapa en ny tom uppsättning. Returnerar den nya uppsättningen vid framgång ellerNULLvid misslyckande. UtlöserTypeErrorom iterable inte är en iterabel. Konstruktören är också användbar för att kopiera en uppsättning (c=set(s)).
-
PyObject *PyFrozenSet_New(PyObject *iterable)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar en ny
frozensetsom innehåller objekt som returnerats av iterable. iterable kan varaNULLför att skapa en ny tom frozenset. Returnerar den nya uppsättningen vid framgång ellerNULLvid misslyckande. UtlöserTypeErrorom iterable inte är en iterable.
Följande funktioner och makron är tillgängliga för instanser av set eller frozenset eller instanser av deras subtyper.
-
Py_ssize_t PySet_Size(PyObject *anyset)¶
- En del av Stabil ABI.
Returnerar längden på ett
setellerfrozensetobjekt. Ekvivalent medlen(anyset). Utlöser ettSystemErrorom anyset inte är enset,frozenset, eller en instans av en subtyp.
-
Py_ssize_t PySet_GET_SIZE(PyObject *anyset)¶
Makroform av
PySet_Size()utan felkontroll.
-
int PySet_Contains(PyObject *anyset, PyObject *key)¶
- En del av Stabil ABI.
Returnerar
1om den hittas,0om den inte hittas och\-1om ett fel inträffar. Till skillnad från Pythons metod__contains__()konverterar denna funktion inte automatiskt ohashbara uppsättningar till tillfälliga frozensets. Orsakar ettTypeErrorom nyckeln är oashbar. UtlösSystemErrorom anyset inte är enset,frozenseteller en instans av en subtyp.
-
int PySet_Add(PyObject *set, PyObject *key)¶
- En del av Stabil ABI.
Lägg till nyckel till en
set-instans. Fungerar även medfrozenset-instanser (somPyTuple_SetItem()kan den användas för att fylla i värdena i helt nya frozensets innan de exponeras för annan kod). Returnerar0vid framgång eller\-1vid misslyckande. Ger ettTypeErrorom nyckeln inte är hashbar. Ger ettMemoryErrorom det inte finns utrymme att växa. Ge upphov till ettSystemErrorom set inte är en instans avseteller dess subtyp.
Följande funktioner är tillgängliga för instanser av set eller dess subtyper men inte för instanser av frozenset eller dess subtyper.
-
int PySet_Discard(PyObject *set, PyObject *key)¶
- En del av Stabil ABI.
Returnerar
1om nyckeln hittats och tagits bort,0om den inte hittats (ingen åtgärd vidtagen) och\-1om ett fel uppstått. Ger inte upphov tillKeyErrorför saknade nycklar. Ger upphov till ettTypeErrorom nyckeln inte är hashbar. Till skillnad från Pythonsdiscard()-metod konverterar denna funktion inte automatiskt ohashbara uppsättningar till tillfälliga frozensets. UtlöserSystemErrorom set inte är en instans avseteller dess subtyp.
-
PyObject *PySet_Pop(PyObject *set)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar en ny referens till ett godtyckligt objekt i set, och tar bort objektet från set. Returnerar
NULLom den misslyckas. Ger upphov tillKeyErrorom uppsättningen är tom. Utlöser ettSystemErrorom set inte är en instans avseteller dess subtyp.
-
int PySet_Clear(PyObject *set)¶
- En del av Stabil ABI.
Tömmer en befintlig uppsättning på alla element. Returnerar
0vid framgång. Returnerar\-1och gerSystemErrorom set inte är en instans avseteller dess subtyp.