딕셔너리 객체¶
-
PyTypeObject PyDict_Type¶
- 상의 안정 ABI.
이
PyTypeObject인스턴스는 파이썬 딕셔너리 형을 나타냅니다. 이것은 파이썬 계층의dict와 같은 객체입니다.
-
int PyDict_Check(PyObject *p)¶
- Thread safety: Atomic.
p가 dict 객체이거나 dict 형의 서브 형의 인스턴스면 참을 반환합니다. 이 함수는 항상 성공합니다.
-
int PyDict_CheckExact(PyObject *p)¶
- Thread safety: Atomic.
p가 dict 객체이지만, dict 형의 서브 형의 인스턴스는 아니면 참을 반환합니다. 이 함수는 항상 성공합니다.
-
PyObject *PyDict_New()¶
- 반환값: 새 참조. 상의 안정 ABI. Thread safety: Atomic.
새로운 빈 딕셔너리를 반환하거나, 실패하면
NULL을 반환합니다.
-
PyObject *PyDictProxy_New(PyObject *mapping)¶
- 반환값: 새 참조. 상의 안정 ABI.
읽기 전용 동작을 강제하는 매핑을 위한
types.MappingProxyType객체를 반환합니다. 이것은 일반적으로 비 동적 클래스 형을 위한 딕셔너리의 수정을 방지하기 위해 뷰를 만드는 데 사용됩니다.첫 번째 인수는
dict,frozendict, 또는 매핑일 수 있습니다.버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
PyTypeObject PyDictProxy_Type¶
- 상의 안정 ABI.
PyDictProxy_New()에 의해 생성된 매핑 프록시 객체 및 많은 기본형 타입의 읽기 전용__dict__속성에 대한 타입 객체입니다.PyDictProxy_Type인스턴스는 기본이 되는 딕셔너리의 동적이고 읽기 전용인 뷰를 제공합니다. 기본 딕셔너리의 변경 사항은 프록시에 반영되지만, 프록시 자체는 변경 작업을 지원하지 않습니다. 이는 파이썬의types.MappingProxyType에 해당합니다.
-
void PyDict_Clear(PyObject *p)¶
- 상의 안정 ABI. Thread safety: Atomic.
기존 딕셔너리의 모든 키-값 쌍을 비웁니다.
인수가
dict또는dict서브클래스가 아닌 경우 아무것도 하지 마십시오.
-
int PyDict_Contains(PyObject *p, PyObject *key)¶
- 상의 안정 ABI. Thread safety: Safe for concurrent use on the same object.
딕셔너리 p 에 key 가 포함되어 있는지 확인합니다. p 의 항목이 key 와 일치하면
1을 반환하고, 그렇지 않으면0을 반환합니다. 에러 발생 시-1을 반환합니다. 이는 파이썬 표현식key in p와 동일합니다.첫 번째 인수는
dict또는 :class:`frozendict`일 수 있습니다.버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
int PyDict_ContainsString(PyObject *p, const char *key)¶
- Thread safety: Atomic.
이것은
PyDict_Contains()와 같지만, key가 PyObject*가 아닌 const char* UTF-8 인코딩된 바이트 문자열로 지정됩니다.첫 번째 인수는
dict또는 :class:`frozendict`일 수 있습니다.Added in version 3.13.
버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
PyObject *PyDict_Copy(PyObject *p)¶
- 반환값: 새 참조. 상의 안정 ABI. Thread safety: Atomic.
p와 같은 키-값 쌍을 포함하는 새 딕셔너리를 반환합니다.
-
int PyDict_SetItem(PyObject *p, PyObject *key, PyObject *val)¶
- 상의 안정 ABI. Thread safety: Safe for concurrent use on the same object.
딕셔너리 p에 val을 key 키로 삽입합니다. key는 해시 가능해야 합니다. 그렇지 않으면
TypeError가 발생합니다. 성공하면0을, 실패하면-1을 반환합니다. 이 함수는 val에 대한 참조를 훔치지 않습니다.
-
int PyDict_SetItemString(PyObject *p, const char *key, PyObject *val)¶
- 상의 안정 ABI. Thread safety: Atomic.
이것은
PyDict_SetItem()와 같지만, key가 PyObject*가 아닌 const char* UTF-8 인코딩된 바이트 문자열로 지정됩니다.
-
int PyDict_DelItem(PyObject *p, PyObject *key)¶
- 상의 안정 ABI. Thread safety: Safe for concurrent use on the same object.
딕셔너리 p에서 키가 key인 항목을 제거합니다. key는 해시 가능해야 합니다. 그렇지 않으면
TypeError가 발생합니다. key가 딕셔너리에 없으면,KeyError가 발생합니다. 성공하면0을, 실패하면-1을 반환합니다.
-
int PyDict_DelItemString(PyObject *p, const char *key)¶
- 상의 안정 ABI. Thread safety: Atomic.
이것은
PyDict_DelItem()와 같지만, key가 PyObject*가 아닌 const char* UTF-8 인코딩된 바이트 문자열로 지정됩니다.
-
int PyDict_GetItemRef(PyObject *p, PyObject *key, PyObject **result)¶
- 상의 안정 ABI 버전 3.13 이후로. Thread safety: Safe for concurrent use on the same object.
키가 key 인 딕셔너리 p 에서 객체에 대한 새로운 strong reference 를 반환합니다:
키가 존재하면, *result 를 값에 대한 새로운 strong reference 로 설정하고
1을 반환합니다.키가 누락되면, *result 를
NULL로 설정하고0을 반환합니다.에러 발생 시 예외를 발생시키고, *result 를
NULL로 설정한 다음에-1을 반환합니다.
첫 번째 인수는
dict또는 :class:`frozendict`일 수 있습니다.Added in version 3.13.
버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
PyObject_GetItem()함수를 참조하십시오.
-
PyObject *PyDict_GetItem(PyObject *p, PyObject *key)¶
- 반환값: 빌린 참조. 상의 안정 ABI. Thread safety: Safe to call from multiple threads with external synchronization only.
딕셔너리 p에서 키가 key인 객체에 대한 빌린 참조를 반환합니다. key 키가 없으면 예외를 설정하지 않고
NULL을 반환합니다.첫 번째 인수는
dict또는 :class:`frozendict`일 수 있습니다.참고
__hash__()와__eq__()메서드를 호출하는 동안 발생하는 예외는 조용히 무시됩니다. 대신PyDict_GetItemWithError()함수를 사용하십시오.참고
:term:`free-threaded build`에서는 다른 스레드가 딕셔너리를 동시에 수정할 경우 반환된 :term:`borrowed reference`가 유효하지 않을 수 있습니다. :term:`strong reference`를 반환하는 :c:func:`PyDict_GetItemRef`를 사용하는 것이 좋습니다.
버전 3.10에서 변경: attached thread state 없이 이 API를 호출하는 것은 역사적인 이유로 허용되어 왔습니다. 이제는 허용되지 않습니다.
버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
PyObject *PyDict_GetItemWithError(PyObject *p, PyObject *key)¶
- 반환값: 빌린 참조. 상의 안정 ABI. Thread safety: Safe to call from multiple threads with external synchronization only.
예외를 억제하지 않는
PyDict_GetItem()의 변형입니다. 예외가 발생하면 예외를 설정하고NULL을 반환합니다. 키가 없으면 예외를 설정하지 않고NULL을 반환합니다.참고
:term:`free-threaded build`에서는 다른 스레드가 딕셔너리를 동시에 수정할 경우 반환된 :term:`borrowed reference`가 유효하지 않을 수 있습니다. :term:`strong reference`를 반환하는 :c:func:`PyDict_GetItemRef`를 사용하는 것이 좋습니다.
버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
PyObject *PyDict_GetItemString(PyObject *p, const char *key)¶
- 반환값: 빌린 참조. 상의 안정 ABI. Thread safety: Safe to call from multiple threads with external synchronization only.
이것은
PyDict_GetItem()와 같지만, key가 PyObject*가 아닌 const char* UTF-8로 인코딩된 바이트 문자열로 지정됩니다.참고
__hash__()와__eq__()메서드를 호출하는 동안이나 임시str객체를 만드는 동안 발생하는 예외는 조용히 무시됩니다. 대신 자체PyUnicode_FromString()key와 함께PyDict_GetItemWithError()함수를 사용하는 것이 좋습니다.참고
:term:`free-threaded build`에서는 다른 스레드가 딕셔너리를 동시에 수정할 경우 반환된 :term:`borrowed reference`가 유효하지 않을 수 있습니다. :term:`strong reference`를 반환하는 :c:func:`PyDict_GetItemStringRef`를 사용하는 것이 좋습니다.
버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
int PyDict_GetItemStringRef(PyObject *p, const char *key, PyObject **result)¶
- 상의 안정 ABI 버전 3.13 이후로. Thread safety: Atomic.
이것은
PyDict_GetItemRef()와 유시하지만, key가 PyObject*가 아닌 const char* UTF-8로 인코딩된 바이트 문자열로 지정됩니다.Added in version 3.13.
버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
PyObject *PyDict_SetDefault(PyObject *p, PyObject *key, PyObject *defaultobj)¶
- 반환값: 빌린 참조. Thread safety: Safe to call from multiple threads with external synchronization only.
이것은 파이썬 수준의
dict.setdefault()와 같습니다. 존재하면, 딕셔너리 p에서 key에 해당하는 값을 반환합니다. 키가 dict에 없으면, 값 defaultobj로 삽입되고, defaultobj가 반환됩니다. 이 함수는 key의 해시 함수를 조회 및 삽입을 위해 독립적으로 평가하는 대신 한 번만 평가합니다.Added in version 3.4.
-
int PyDict_SetDefaultRef(PyObject *p, PyObject *key, PyObject *default_value, PyObject **result)¶
- 상의 안정 ABI 버전 3.15 이후로. Thread safety: Safe for concurrent use on the same object.
Inserts default_value into the dictionary p with a key of key if the key is not already present in the dictionary. If result is not
NULL, then *result is set to a strong reference to either default_value, if the key was not present, or the existing value, if key was already present in the dictionary. Returns1if the key was present and default_value was not inserted, or0if the key was not present and default_value was inserted. On failure, returns-1, sets an exception, and sets*resulttoNULL.명확하게 말씀드리자면: 이 함수를 호출하기 전에 default_value 에 대한 강한 참조를 가지고 있다면, 반환 후에도 당신은 default_value 와 *result (
NULL이 아닌 경우) 모두에 대한 강한 참조를 보유하게 됩니다. 이는 동일한 객체를 참조할 수 있습니다: 이 경우 당신은 해당 객체에 대한 두 개의 별개 참조를 보유하게 됩니다.Added in version 3.13.
-
int PyDict_Pop(PyObject *p, PyObject *key, PyObject **result)¶
- Thread safety: Safe for concurrent use on the same object.
딕셔너리 p 에서 key 를 제거하고 선택적으로 제거된 값을 반환합니다. 키가 누락된 경우
KeyError를 발생시키지 않습니다.키가 존재하면, result 가
NULL이 아닌 경우 제거된 값에 대한 새로운 참조를 *result 로 설정하고1을 반환합니다.키가 누락되면, result 가
NULL이 아닌 경우 *result 를NULL로 설정하고0을 반환합니다.에러 발생 시 예외를 발생시키고
-1을 반환합니다.
:meth:`dict.pop`과 유사하지만, 기본값이 없고 키가 누락되더라도 :exc:`KeyError`를 발생시키지 않습니다.
Added in version 3.13.
-
int PyDict_PopString(PyObject *p, const char *key, PyObject **result)¶
- Thread safety: Atomic.
이것은
PyDict_Pop()와 유사하지만, key가 PyObject*가 아닌 const char* UTF-8로 인코딩된 바이트 문자열로 지정됩니다.Added in version 3.13.
-
PyObject *PyDict_Items(PyObject *p)¶
- 반환값: 새 참조. 상의 안정 ABI. Thread safety: Atomic.
딕셔너리의 모든 항목을 포함하는
PyListObject를 반환합니다.첫 번째 인수는
dict또는 :class:`frozendict`일 수 있습니다.버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
PyObject *PyDict_Keys(PyObject *p)¶
- 반환값: 새 참조. 상의 안정 ABI. Thread safety: Atomic.
딕셔너리의 모든 키를 포함하는
PyListObject를 반환합니다.첫 번째 인수는
dict또는 :class:`frozendict`일 수 있습니다.버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
PyObject *PyDict_Values(PyObject *p)¶
- 반환값: 새 참조. 상의 안정 ABI. Thread safety: Atomic.
딕셔너리 p의 모든 값을 포함하는
PyListObject를 반환합니다.첫 번째 인수는
dict또는 :class:`frozendict`일 수 있습니다.버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
Py_ssize_t PyDict_Size(PyObject *p)¶
- 상의 안정 ABI. Thread safety: Atomic.
딕셔너리에 있는 항목의 수를 반환합니다. 이는 딕셔너리에 대한
len(p)와 동등합니다.인수는
dict또는 :class:`frozendict`일 수 있습니다.버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
Py_ssize_t PyDict_GET_SIZE(PyObject *p)¶
- Thread safety: Atomic.
:c:func:`PyDict_Size`와 유사하지만, 에러 검사는 없습니다.
버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
int PyDict_Next(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue)¶
- 상의 안정 ABI. Thread safety: Safe to call from multiple threads with external synchronization only.
딕셔너리 p의 모든 키-값 쌍을 이터레이트 합니다. ppos에 의해 참조된
Py_ssize_t는, 이터레이션을 시작하기 위해 이 함수를 처음 호출하기 전에0으로 초기화되어야 합니다; 이 함수는 딕셔너리의 각 쌍에 대해 참을 반환하고, 모든 쌍이 보고되었으면 거짓을 반환합니다. 매개 변수 pkey와 pvalue는 각각 키와 값으로 채울 PyObject* 변수를 가리 키거나,NULL일 수 있습니다. 이들을 통해 반환된 참조는 모두 빌린(borrowed) 것입니다. 이터레이션 중에 ppos를 변경하면 안 됩니다. 이 값은 내부 딕셔너리 구조 내의 오프셋을 나타내며, 구조가 희박하므로 오프셋이 연속되지 않습니다.첫 번째 인수는
dict또는 :class:`frozendict`일 수 있습니다.예를 들면:
PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next(self->dict, &pos, &key, &value)) { /* 값으로 흥미로운 작업을 수행합니다... */ ... }
딕셔너리 p는 이터레이션 중에 변경해서는 안 됩니다. 딕셔너리를 이터레이트 할 때 값을 변경하는 것은 안전하지만, 키 집합이 변경되지 않는 한만 그렇습니다. 예를 들면:
PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next(self->dict, &pos, &key, &value)) { long i = PyLong_AsLong(value); if (i == -1 && PyErr_Occurred()) { return -1; } PyObject *o = PyLong_FromLong(i + 1); if (o == NULL) return -1; if (PyDict_SetItem(self->dict, key, o) < 0) { Py_DECREF(o); return -1; } Py_DECREF(o); }
이 함수는 가변적인
dict`에 대해 외부 동기화 없이는 :term:`free-threaded빌드에서 스레드 안전하지 않습니다. 반복 시 딕셔너리를 잠그려면 :c:macro:`Py_BEGIN_CRITICAL_SECTION`을 사용할 수 있습니다:Py_BEGIN_CRITICAL_SECTION(self->dict); while (PyDict_Next(self->dict, &pos, &key, &value)) { ... } Py_END_CRITICAL_SECTION();
이 함수는 :class:`frozendict`에 대해 스레드 안전합니다.
참고
free-threaded 빌드에서 이 함수는 임계 섹션 내부에서 안전하게 사용할 수 있습니다. 하지만 pkey 및 pvalue 에 대해 반환되는 참조는 borrowed 이며, 임계 섹션이 유지되는 동안에만 유효합니다. 이 객체들을 임계 섹션 외부에서 사용하거나 임계 섹션이 중단될 수 있는 경우, strong reference 를 생성해야 합니다 (예를 들어,
Py_NewRef()사용).버전 3.15에서 변경: :class:`frozendict`도 허용합니다.
-
int PyDict_Merge(PyObject *a, PyObject *b, int override)¶
- 상의 안정 ABI. Thread safety: Safe for concurrent use on the same object.
매핑 객체 b를 이터레이트 하면서, 키-값 쌍을 딕셔너리 a에 추가합니다. b는 딕셔너리거나
PyMapping_Keys()와PyObject_GetItem()를 지원하는 모든 객체일 수 있습니다. override가 참이면, a에 있는 기존 쌍이 b에서 일치하는 키가 있으면 교체되고, 그렇지 않으면 a와 일치하는 키가 없을 때만 쌍이 추가됩니다. 성공하면0을 반환하고, 예외가 발생하면-1을 반환합니다.참고
free-threaded build 에서 b 가
dict(표준 반복자 포함)일 때, a 와 b 모두 작업 시간 동안 잠깁니다. b 가 딕셔너리가 아닌 매핑인 경우, a 만 잠기며, b 는 다른 스레드에 의해 동시에 수정될 수 있습니다.
-
int PyDict_Update(PyObject *a, PyObject *b)¶
- 상의 안정 ABI. Thread safety: Safe for concurrent use on the same object.
이는 C에서
PyDict_Merge(a, b, 1)와 같고, 두 번째 인자에 “keys” 어트리뷰트가 없을 때PyDict_Update()가 키-값 쌍의 시퀀스에 대해 이터레이트 하지 않는다는 점만 제외하면, 파이썬에서a.update(b)와 유사합니다. 성공하면0을 반환하고, 예외가 발생하면-1을 반환합니다.참고
free-threaded build 에서 b 가
dict(표준 반복자 포함)일 때, a 와 b 모두 작업 시간 동안 잠깁니다. b 가 딕셔너리가 아닌 매핑인 경우, a 만 잠기며, b 는 다른 스레드에 의해 동시에 수정될 수 있습니다.
-
int PyDict_MergeFromSeq2(PyObject *a, PyObject *seq2, int override)¶
- 상의 안정 ABI. Thread safety: Safe for concurrent use on the same object.
seq2의 키-값 쌍으로 딕셔너리 a를 갱신하거나 병합합니다. seq2는 키-값 쌍으로 간주하는 길이 2의 이터러블 객체를 생성하는 이터러블 객체여야 합니다. 중복 키가 있으면, override가 참이면 마지막이 승리하고, 그렇지 않으면 첫 번째가 승리합니다. 성공 시
0을 반환하고, 예외가 발생하면-1을 반환합니다. 동등한 파이썬은 이렇습니다(반환 값 제외)def PyDict_MergeFromSeq2(a, seq2, override): for key, value in seq2: if override or key not in a: a[key] = value
참고
free-threaded 빌드에서 a 만 잠깁니다. seq2 를 반복하는 것은 동기화되지 않으며, seq2 는 다른 스레드에 의해 동시에 수정될 수 있습니다.
-
int PyDict_AddWatcher(PyDict_WatchCallback callback)¶
- Thread safety: Safe to call from multiple threads with external synchronization only.
딕셔너리 감시자로 callback 을 등록합니다. 향후
PyDict_Watch()호출에 전달되어야 하는 음수가 아닌 정수 ID를 반환합니다. 에러가 발생한 경우(예: 더 이상 감시자 ID를 사용할 수 없는 경우),-1을 반환하고 예외를 설정합니다.참고
이 함수는 내부적으로 동기화되어 있지 않습니다. free-threaded 빌드에서는 호출자가
PyDict_AddWatcher()또는 :c:func:`PyDict_ClearWatcher`에 대한 동시 호출이 진행되지 않도록 보장해야 합니다.Added in version 3.12.
-
int PyDict_ClearWatcher(int watcher_id)¶
- Thread safety: Safe to call from multiple threads with external synchronization only.
PyDict_AddWatcher()에서 이전에 반환된 watcher_id 로 식별된 감시자를 지웁니다. 성공 시0을, 에러 시-1을 반환합니다(예: 주어진 watcher_id 가 등록된 적이 없는 경우).참고
이 함수는 내부적으로 동기화되어 있지 않습니다. free-threaded 빌드에서는 호출자가
PyDict_AddWatcher()또는 :c:func:`PyDict_ClearWatcher`에 대한 동시 호출이 진행되지 않도록 보장해야 합니다.Added in version 3.12.
-
int PyDict_Watch(int watcher_id, PyObject *dict)¶
- Thread safety: Safe to call without external synchronization on distinct objects.
딕셔너리 dict 를 감시되는 것으로 표시합니다.
PyDict_AddWatcher()에 의해 부여된 watcher_id 의 콜백은 dict 가 수정되거나 할당 해제될 때 호출됩니다. 성공 시0, 에러 시-1을 반환합니다.Added in version 3.12.
-
int PyDict_Unwatch(int watcher_id, PyObject *dict)¶
- Thread safety: Safe to call without external synchronization on distinct objects.
딕셔너리 dict 를 더 이상 감시되지 않는 것으로 표시합니다.
PyDict_AddWatcher()에 의해 부여된 watcher_id 의 콜백은 dict 가 수정되거나 할당 해제될 때 더 이상 호출되지 않습니다. 딕셔너리는 이 감시자에 의해 이전에 감시된 적이 있어야 합니다. 성공 시0, 에러 시-1을 반환합니다.Added in version 3.12.
-
type PyDict_WatchEvent¶
가능한 딕셔너리 감시자 이벤트의 열거:
PyDict_EVENT_ADDED,PyDict_EVENT_MODIFIED,PyDict_EVENT_DELETED,PyDict_EVENT_CLONED,PyDict_EVENT_CLEARED, 또는PyDict_EVENT_DEALLOCATED.Added in version 3.12.
-
typedef int (*PyDict_WatchCallback)(PyDict_WatchEvent event, PyObject *dict, PyObject *key, PyObject *new_value)¶
딕셔너리 감시자 콜백 함수의 유형입니다.
event 가
PyDict_EVENT_CLEARED또는PyDict_EVENT_DEALLOCATED이면, key 와 new_value 모두NULL이 됩니다. event 가PyDict_EVENT_ADDED또는PyDict_EVENT_MODIFIED이면, new_value 는 key 의 새 값이 됩니다. event 가PyDict_EVENT_DELETED이면, key 는 딕셔너리에서 삭제되고 new_value 는NULL이 됩니다.dict 가 이전에 비어 있었고 다른 딕셔너리가 여기에 병합될 때
PyDict_EVENT_CLONED가 발생합니다. 이 작업의 효율성을 유지하기 위해, 이 경우에는 키별PyDict_EVENT_ADDED이벤트가 발행되지 않고 대신 단일PyDict_EVENT_CLONED가 발행되며, key 는 소스 딕셔너리가 됩니다.콜백에서 dict 를 검사할 수는 있지만 수정해서는 안 됩니다. 그렇게 할 경우 무한 재귀를 포함하여 예측할 수 없는 효과를 가져올 수 있습니다. 콜백 내에서 Python 코드 실행을 트리거하지 마십시오. 사이드 이펙트로 딕셔너리를 수정할 수 있기 때문입니다.
event 가
PyDict_EVENT_DEALLOCATED이면, 콜백에서 곧 파괴될 딕셔너리에 새로운 참조를 취하는 것은 이를 부활시키고 이 시점에 해제되는 것을 방지합니다. 부활된 객체가 나중에 파괴될 때, 그 시점에 활성화된 모든 감시자 콜백이 다시 호출됩니다.콜백은 dict 에 대한 변경 통지 전에 발생하므로, dict 의 이전 상태를 검사할 수 있습니다.
If the callback sets an exception, it must return
-1; this exception will be printed as an unraisable exception usingPyErr_WriteUnraisable(). Otherwise it should return0.다른 메서드와 달리, 이 방법으로 추가된 콜백은 예외를 무시할 수 없습니다 (예외 세부 정보가 전달되지 않기 때문입니다).
Added in version 3.12.
딕셔너리 뷰 객체¶
-
int PyDictViewSet_Check(PyObject *op)¶
op が 딕셔너리 내의 집합의 뷰인지 확인합니다. 이는 현재 :c:expr:`PyDictKeys_Check(op) || PyDictItems_Check(op)`와 동일합니다. 이 함수는 항상 성공합니다.
-
PyTypeObject PyDictKeys_Type¶
- 상의 안정 ABI.
딕셔너리 키 뷰의 타입 객체입니다. 파이썬에서 이것은 :meth:`dict.keys`에 의해 반환되는 객체의 타입입니다.
-
PyTypeObject PyDictValues_Type¶
- 상의 안정 ABI.
딕셔너리 값 뷰의 타입 객체입니다. 파이썬에서 이것은 :meth:`dict.values`에 의해 반환되는 객체의 타입입니다.
-
PyTypeObject PyDictItems_Type¶
- 상의 안정 ABI.
딕셔너리 항목 뷰의 타입 객체입니다. 파이썬에서 이것은 :meth:`dict.items`에 의해 반환되는 객체의 타입입니다.
프리징(Frozen)된 딕셔너리 객체¶
Added in version 3.15.
-
PyTypeObject PyFrozenDict_Type¶
이
PyTypeObject인스턴스는 파이썬의 프리징(frozen) 딕셔너리 타입을 나타냅니다. 이는 파이썬 계층의frozendict와 동일한 객체입니다.
-
int PyAnyDict_Check(PyObject *p)¶
p 가
dict객체이거나,frozendict객체이거나,dict또는frozendict타입의 서브 타입 인스턴스인지 확인합니다. 이 함수는 항상 성공합니다.
-
int PyAnyDict_CheckExact(PyObject *p)¶
p 가
dict객체이거나frozendict객체이지만,dict또는frozendict타입의 서브 타입 인스턴스는 아님을 확인합니다. 이 함수는 항상 성공합니다.
-
int PyFrozenDict_Check(PyObject *p)¶
p 가
frozendict객체이거나frozendict타입의 서브 타입 인스턴스인지 확인합니다. 이 함수는 항상 성공합니다.
-
int PyFrozenDict_CheckExact(PyObject *p)¶
p 가
frozendict객체이지만,frozendict타입의 서브 타입 인스턴스는 아님을 확인합니다. 이 함수는 항상 성공합니다.
-
PyObject *PyFrozenDict_New(PyObject *iterable)¶
이터러블로부터 새로운
frozendict를 반환하거나, 예외가 설정된 경우 실패 시NULL을 반환합니다.iterable 이
NULL인 경우 빈 딕셔너리를 생성합니다.
순서가 유지되는 딕셔너리¶
파이썬의 C API는 C로부터 collections.OrderedDict 에 대한 인터페이스를 제공합니다. 파이썬 3.7 이후로 딕셔너리는 기본적으로 순서가 유지되므로, 일반적으로 이 함수들에 대한 필요성이 거의 없습니다. 가능한 경우 PyDict* 를 사용하는 것이 좋습니다.
-
PyTypeObject PyODict_Type¶
순서가 유지되는 딕셔너리의 타입 객체입니다. 이는 파이썬 계층의
collections.OrderedDict와 동일한 객체입니다.
-
int PyODict_Check(PyObject *od)¶
od 가 순서가 유지되는 딕셔너리 객체이거나,
OrderedDict타입의 서브 타입 인스턴스인지 확인합니다. 이 함수는 항상 성공합니다.
-
int PyODict_CheckExact(PyObject *od)¶
od 가 순서가 유지되는 딕셔너리 객체이지만,
OrderedDict타입의 서브 타입 인스턴스는 아님을 확인합니다. 이 함수는 항상 성공합니다.
-
PyTypeObject PyODictKeys_Type¶
순서가 유지되는 딕셔너리에 대한 :c:type:`PyDictKeys_Type`와 유사합니다.
-
PyTypeObject PyODictValues_Type¶
순서가 유지되는 딕셔너리에 대한 :c:type:`PyDictValues_Type`와 유사합니다.
-
PyTypeObject PyODictItems_Type¶
순서가 유지되는 딕셔너리에 대한 :c:type:`PyDictItems_Type`와 유사합니다.
-
PyObject *PyODict_New(void)¶
새로운 빈 순서 유지 딕셔너리를 반환하거나, 실패 시
NULL을 반환합니다.:c:func:`PyDict_New`와 유사합니다.
-
int PyODict_SetItem(PyObject *od, PyObject *key, PyObject *value)¶
key 키를 사용하여 순서 유지 딕셔너리 od 에 value 를 삽입합니다. 성공하면
0을, 실패하면 예외가 설정된 상태로-1을 반환합니다.:c:func:`PyDict_SetItem`와 유사합니다.
-
int PyODict_DelItem(PyObject *od, PyObject *key)¶
순서 유지 딕셔너리 od 에서 key 키를 가진 항목을 제거합니다. 성공하면
0을, 실패하면 예외가 설정된 상태로-1을 반환합니다.:c:func:`PyDict_DelItem`와 유사합니다.
다음은 PyDict API에 대한 soft deprecated 별칭들입니다:
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|