딕셔너리 객체¶
-
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또는 매핑(mapping)이 될 수 있습니다.버전 3.15에서 변경:
frozendict도 허용합니다.
-
PyTypeObject PyDictProxy_Type¶
- …의 일부 안정 ABI.
PyDictProxy_New()에 의해 생성된 매핑 프록시 객체와 많은 내장형 타입의 읽기 전용__dict__속성에 대한 타입 객체입니다.PyDictProxy_Type인스턴스는 기반 딕셔너리에 대한 동적이며 읽기 전용인 뷰를 제공합니다. 즉, 기본 딕셔너리의 변경 사항은 프록시에도 반영되지만, 프록스 자체는 변형(mutation) 작업을 지원하지 않습니다. 이는 파이썬의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또는frozendict일 수 있습니다.버전 3.15에서 변경:
frozendict도 허용합니다.
-
int PyDict_ContainsString(PyObject *p, const char *key)¶
- Thread safety: Atomic.
이것은
PyDict_Contains()와 같지만, key가 PyObject*가 아닌 const char* UTF-8 인코딩된 바이트 문자열로 지정됩니다.첫 번째 인자는
dict또는frozendict일 수 있습니다.Added in version 3.13.
버전 3.15에서 변경:
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.
val 을 key 키로 딕셔너리 p 에 삽입합니다. key 는 hashable 이어야 하며, 그렇지 않을 경우
TypeError가 발생합니다. 성공하면0을, 실패하면-1을 반환합니다. 이 함수는 val 에 대한 참조를 “steal “하지 않습니다.
-
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또는frozendict일 수 있습니다.Added in version 3.13.
버전 3.15에서 변경:
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또는frozendict일 수 있습니다.참고
__hash__()와__eq__()메서드를 호출하는 동안 발생하는 예외는 조용히 무시됩니다. 대신PyDict_GetItemWithError()함수를 사용하십시오.참고
In the free-threaded build, the returned borrowed reference may become invalid if another thread modifies the dictionary concurrently. Prefer
PyDict_GetItemRef(), which returns a strong reference.버전 3.10에서 변경: attached thread state 없이 이 API를 호출하는 것은 역사적인 이유로 허용되어 왔습니다. 이제는 허용되지 않습니다.
버전 3.15에서 변경:
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을 반환합니다.참고
In the free-threaded build, the returned borrowed reference may become invalid if another thread modifies the dictionary concurrently. Prefer
PyDict_GetItemRef(), which returns a strong reference.버전 3.15에서 변경:
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()함수를 사용하는 것이 좋습니다.참고
In the free-threaded build, the returned borrowed reference may become invalid if another thread modifies the dictionary concurrently. Prefer
PyDict_GetItemStringRef(), which returns a strong reference.버전 3.15에서 변경:
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에서 변경:
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.
참고
In the free-threaded build, the returned borrowed reference may become invalid if another thread modifies the dictionary concurrently. Prefer
PyDict_SetDefaultRef(), which returns a strong reference.
-
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을 반환합니다.
dict.pop()과 유사하지만, 기본값이 없으며 키가 없을 때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또는frozendict일 수 있습니다.버전 3.15에서 변경:
frozendict도 허용합니다.
-
PyObject *PyDict_Keys(PyObject *p)¶
- 반환값: 새 참조. …의 일부 안정 ABI. Thread safety: Atomic.
딕셔너리의 모든 키를 포함하는
PyListObject를 반환합니다.첫 번째 인자는
dict또는frozendict일 수 있습니다.버전 3.15에서 변경:
frozendict도 허용합니다.
-
PyObject *PyDict_Values(PyObject *p)¶
- 반환값: 새 참조. …의 일부 안정 ABI. Thread safety: Atomic.
딕셔너리 p의 모든 값을 포함하는
PyListObject를 반환합니다.첫 번째 인자는
dict또는frozendict일 수 있습니다.버전 3.15에서 변경:
frozendict도 허용합니다.
-
Py_ssize_t PyDict_Size(PyObject *p)¶
- …의 일부 안정 ABI. Thread safety: Atomic.
딕셔너리에 있는 항목의 수를 반환합니다. 이는 딕셔너리에 대한
len(p)와 동등합니다.인자는
dict또는frozendict가 될 수 있습니다.버전 3.15에서 변경:
frozendict도 허용합니다.
-
Py_ssize_t PyDict_GET_SIZE(PyObject *p)¶
- Thread safety: Atomic.
PyDict_Size()와 유사하지만 오류 검사가 포함되지 않습니다.버전 3.15에서 변경:
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또는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); }
free-threaded 빌드에서 가변적인
dict에 대해 외부 동기화 없이 사용할 경우 이 함수는 스레드 안전하지 않습니다. 반복(iteration) 중에 딕셔너리를 잠그려면Py_BEGIN_CRITICAL_SECTION을 사용할 수 있습니다:Py_BEGIN_CRITICAL_SECTION(self->dict); while (PyDict_Next(self->dict, &pos, &key, &value)) { ... } Py_END_CRITICAL_SECTION();
이 함수는
frozendict에서 스레드 안전합니다.참고
free-threaded 빌드에서 이 함수는 임계 섹션 내부에서 안전하게 사용할 수 있습니다. 하지만 pkey 및 pvalue 에 대해 반환되는 참조는 borrowed 이며, 임계 섹션이 유지되는 동안에만 유효합니다. 이 객체들을 임계 섹션 외부에서 사용하거나 임계 섹션이 중단될 수 있는 경우, strong reference 를 생성해야 합니다 (예를 들어,
Py_NewRef()사용).버전 3.15에서 변경:
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()또는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을 반환하고, 오류 발생 시(예를 들어, 주어진 watcher_id 가 등록된 적이 없는 경우)-1을 반환합니다.참고
이 함수는 내부적으로 동기화되지 않습니다. free-threaded 빌드에서 호출자는
PyDict_AddWatcher()또는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입니다.PyDict_EVENT_CLONED는 dict 가 이전에 비어 있었고 다른 딕셔너리가 병합될 때 발생합니다. 이 연산의 효율성을 유지하기 위해, 이 경우 키당PyDict_EVENT_ADDED이벤트는 생성되지 않고 단일한PyDict_EVENT_CLONED만 발생하며, key 는 소스 딕셔너리가 됩니다.콜백은 dict 를 검사할 수 있지만 수정해서는 안 됩니다. 이를 수행하면 무한 재귀를 포함하여 예측할 수 없는 영향이 발생할 수 있습니다. 콜백 내에서 파이썬 코드를 실행하지 마십시오. 부수 효과로 딕셔너리가 변경될 수 있기 때문입니다.
event 이
PyDict_EVENT_DEALLOCATED인 경우, 콜백에서 파괴될 예정인 딕셔너리에 대한 새로운 참조를 가져오면 해당 객체가 다시 살아나며(resurrect) 현재 시점에서 해제되는 것을 방지합니다. 나중에 이 복구된 객체가 파괴될 때, 해당 시점에 활성화된 모든 감시 콜백이 다시 호출됩니다.콜백은 dict 에 대한 통지된 변경이 발생하기 전에 실행되므로, dict 의 이전 상태를 검사할 수 있습니다.
콜백이 예외를 설정하는 경우 반드시
-1을 반환해야 합니다. 이 예외는PyErr_WriteUnraisable()을 사용하여 발생할 수 없는 예외로 출력됩니다. 그렇지 않은 경우에는0을 반환해야 합니다.콜백 진입 시 이미 설정된 대기 중인 예외가 있을 수 있습니다. 이 경우 콜백은 동일한 예외가 설정된 상태로
0을 반환해야 합니다. 이는 콜백이 먼저 예외 상태를 저장하고 삭제한 후, 반환하기 전에 이를 복구하지 않는 한 예외를 설정할 수 있는 다른 API를 호출해서는 안 된다는 것을 의미합니다.Added in version 3.12.
딕셔너리 뷰 객체¶
-
int PyDictViewSet_Check(PyObject *op)¶
op 이 딕셔너리 내부 집합의 뷰인 경우 참을 반환합니다. 이는 현재 PyDictKeys_Check(op) || PyDictItems_Check(op) 와 동일합니다. 이 함수는 항상 성공합니다.
-
PyTypeObject PyDictKeys_Type¶
- …의 일부 안정 ABI.
딕셔너리 키 뷰에 대한 타입 객체입니다. 파이썬에서 이는
dict.keys()가 반환하는 객체의 타입과 같습니다.
-
PyTypeObject PyDictValues_Type¶
- …의 일부 안정 ABI.
딕셔너리 값 뷰에 대한 타입 객체입니다. 파이썬에서 이는
dict.values()가 반환하는 객체의 타입과 같습니다.
-
PyTypeObject PyDictItems_Type¶
- …의 일부 안정 ABI.
딕셔너리 항목(item) 뷰에 대한 타입 객체입니다. 파이썬에서 이는
dict.items()가 번환하는 객체의 타입과 같습니다.
동결된(Frozen) 딕셔너리 객체¶
Added in version 3.15.
-
PyTypeObject PyFrozenDict_Type¶
이
PyTypeObject인스턴스는 파이썬의 동결된 딕셔너리 형(type)을 나타냅니다. 이는 파이썬 레이어의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)¶
반복 가능 객체(iterable)로부터 새로운
frozendict를 반환하며, 실패 시 예외와 함께NULL을 반환합니다.iterable 이
NULL인 경우 빈 딕셔너리를 생성합니다.
순서 있는 딕셔너리(Ordered dictionaries)¶
파이썬의 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¶
순서 있는 딕셔너리에 대한
PyDictKeys_Type과 유사합니다.
-
PyTypeObject PyODictValues_Type¶
순서 있는 딕셔너리에 대한
PyDictValues_Type과 유사합니다.
-
PyTypeObject PyODictItems_Type¶
순서 있는 딕셔너리에 대한
PyDictItems_Type과 유사합니다.
-
PyObject *PyODict_New(void)¶
새로운 빈 순서 있는 딕셔너리를 반환하거나, 실패 시
NULL을 반환합니다.이것은
PyDict_New()와 유사합니다.
-
int PyODict_SetItem(PyObject *od, PyObject *key, PyObject *value)¶
key 라는 키로 value 를 순서 있는 딕셔너리 od 에 삽입합니다. 성공 시
0을 반환하고, 실패 시 예외와 함께-1을 반환합니다.이것은
PyDict_SetItem()과 유사합니다.
-
int PyODict_DelItem(PyObject *od, PyObject *key)¶
순서 있는 딕셔너리 od 에서 key 를 가진 항목을 제거합니다. 성공 시
0을 반환하고, 실패 시 예외와 함께-1을 반환합니다.이것은
PyDict_DelItem()과 유사합니다.
다음은 PyDict API에 대한 soft deprecated 별칭들입니다:
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|