辞書オブジェクト¶
-
PyTypeObject PyDict_Type¶
- 次に属します: Stable ABI.
この
PyTypeObjectのインスタンスは Python の辞書を表現します。このオブジェクトは、Python レイヤにおけるdictと同じオブジェクトです。
-
int PyDict_Check(PyObject *p)¶
- Thread safety: Atomic.
p が辞書オブジェクトか辞書型のサブタイプのインスタンスである場合に真を返します。この関数は常に成功します。
-
int PyDict_CheckExact(PyObject *p)¶
- Thread safety: Atomic.
p が辞書オブジェクトだが辞書型のサブタイプのインスタンスでない場合に真を返します。この関数は常に成功します。
-
PyObject *PyDict_New()¶
- 戻り値: 新しい参照。 次に属します: Stable ABI. Thread safety: Atomic.
空の新たな辞書を返します。 失敗すると
NULLを返します。
-
PyObject *PyDictProxy_New(PyObject *mapping)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI.
あるマップ型オブジェクトに対して、読み出し専用に制限された
types.MappingProxyTypeオブジェクトを返します。通常、この関数は動的でないクラス型 (non-dynamic class type) のクラス辞書が変更されないようにビューを作成するために使われます。最初の引数には
dict、frozendict、またはマッピングを指定できます。バージョン 3.15 で変更:
frozendictも受け付けるようになりました。
-
PyTypeObject PyDictProxy_Type¶
- 次に属します: Stable ABI.
PyDictProxy_New()が作成するマッピングプロキシオブジェクトや、多くの組み込み型の読み出し専用の__dict__属性に使われる型オブジェクトです。PyDictProxy_Typeのインスタンスは、元の辞書の動的な読み出し専用ビューを提供します。 元の辞書の変更はプロキシに反映されますが、プロキシ自体は変更操作をサポートしません。 Python のtypes.MappingProxyTypeに対応します。
-
void PyDict_Clear(PyObject *p)¶
- 次に属します: Stable ABI. Thread safety: Atomic.
現在辞書に入っている全てのキーと値のペアを除去して空にします。
引数が
dictまたはdictのサブクラスでない場合は何もしません。
-
int PyDict_Contains(PyObject *p, PyObject *key)¶
- 次に属します: Stable ABI. Thread safety: Safe for concurrent use on the same object.
辞書 p に key が含まれるか判定します。 p 内に key と一致する要素があれば
1、なければ0を返します。 エラー時には-1を返します。 Python の式key in pと等価です。最初の引数には
dictまたはfrozendictを指定できます。バージョン 3.15 で変更:
frozendictも受け付けるようになりました。
-
int PyDict_ContainsString(PyObject *p, const char *key)¶
- Thread safety: Atomic.
PyDict_Contains()と同様ですが、key は PyObject* ではなく、UTF-8 でエンコードされた const char* のバイト文字列で指定します。最初の引数には
dictまたはfrozendictを指定できます。Added in version 3.13.
バージョン 3.15 で変更:
frozendictも受け付けるようになりました。
-
PyObject *PyDict_Copy(PyObject *p)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI. Thread safety: Atomic.
p と同じキーと値のペアが入った新たな辞書を返します。
-
int PyDict_SetItem(PyObject *p, PyObject *key, PyObject *val)¶
- 次に属します: Stable ABI. Thread safety: Safe for concurrent use on the same object.
辞書 p に、キー key で val を挿入します。 key は ハッシュ可能 でなければならず、そうでない場合は
TypeErrorを送出します。 成功すると0、失敗すると-1を返します。 この関数は val への参照を「盗みません」。
-
int PyDict_SetItemString(PyObject *p, const char *key, PyObject *val)¶
- 次に属します: Stable ABI. Thread safety: Atomic.
PyDict_SetItem()と同様ですが、key は PyObject* ではなく、UTF-8 でエンコードされた const char* のバイト文字列で指定します。
-
int PyDict_DelItem(PyObject *p, PyObject *key)¶
- 次に属します: Stable 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)¶
- 次に属します: Stable ABI. Thread safety: Atomic.
PyDict_DelItem()と同様ですが、key は PyObject* ではなく、UTF-8 でエンコードされた const char* のバイト文字列で指定します。
-
int PyDict_GetItemRef(PyObject *p, PyObject *key, PyObject **result)¶
- 次に属します: Stable ABI (バージョン 3.13 より). Thread safety: Safe for concurrent use on the same object.
辞書 p からキー key に対応するオブジェクトへの新しい 強参照 を返します:
キーがあれば、*result にその値への新しい 強参照 を設定し、
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)¶
- 戻り値: 借用参照。 次に属します: Stable ABI. Thread safety: Safe to call from multiple threads with external synchronization only.
辞書 p からキー key に対応するオブジェクトへの 借用参照 を返します。 キー key がなければ、例外を設定 せずに
NULLを返します。最初の引数には
dictまたはfrozendictを指定できます。注釈
この関数が
__hash__()メソッドや__eq__()メソッドを呼び出す際に発生した例外は、通知せずに無視します。 代わりにPyDict_GetItemWithError()関数を使うことを推奨します。注釈
フリースレッドビルド では、別のスレッドが同時に辞書を変更すると、返された 借用参照 が無効になる可能性があります。 強参照 を返す
PyDict_GetItemRef()を使うことを推奨します。バージョン 3.10 で変更: 歴史的な理由により、以前は アタッチされたスレッド状態 なしでこの API を呼び出すことが認められていました。 現在は認められていません。
バージョン 3.15 で変更:
frozendictも受け付けるようになりました。
-
PyObject *PyDict_GetItemWithError(PyObject *p, PyObject *key)¶
- 戻り値: 借用参照。 次に属します: Stable ABI. Thread safety: Safe to call from multiple threads with external synchronization only.
PyDict_GetItem()の変種で例外を隠しません。 例外が発生した場合は、例外をセット した上でNULLを返します。 キーが存在しなかった場合は、例外をセット せずにNULLを返します。注釈
フリースレッドビルド では、別のスレッドが同時に辞書を変更すると、返された 借用参照 が無効になる可能性があります。 強参照 を返す
PyDict_GetItemRef()を使うことを推奨します。バージョン 3.15 で変更:
frozendictも受け付けるようになりました。
-
PyObject *PyDict_GetItemString(PyObject *p, const char *key)¶
- 戻り値: 借用参照。 次に属します: Stable ABI. Thread safety: Safe to call from multiple threads with external synchronization only.
PyDict_GetItem()と同様ですが、key は PyObject* ではなく、UTF-8 でエンコードされた const char* のバイト文字列で指定します。注釈
この関数が
__hash__()メソッドや__eq__()メソッドを呼び出す際、または一時的なstrオブジェクトを作成する際に発生した例外は、通知せずに無視します。 代わりに、自分でPyUnicode_FromString()により key を作成し、PyDict_GetItemWithError()関数を使うことを推奨します。注釈
フリースレッドビルド では、別のスレッドが同時に辞書を変更すると、返された 借用参照 が無効になる可能性があります。 強参照 を返す
PyDict_GetItemStringRef()を使うことを推奨します。バージョン 3.15 で変更:
frozendictも受け付けるようになりました。
-
int PyDict_GetItemStringRef(PyObject *p, const char *key, PyObject **result)¶
- 次に属します: Stable ABI (バージョン 3.13 より). Thread safety: Atomic.
PyDict_GetItemRef()と同様ですが、key は PyObject* ではなく、UTF-8 でエンコードされた const char* のバイト文字列で指定します。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.
これは Python レベルの
dict.setdefault()と同じです。 もしあれば、辞書 p から key に対応する値を返します。 キーが辞書になければ、値 defaultobj を挿入し defaultobj を返します。 この関数は、 key のハッシュ値を検索と挿入ごとに別々に評価するのではなく、一度だけしか評価しません。Added in version 3.4.
注釈
フリースレッドビルド では、別のスレッドが同時に辞書を変更すると、返された 借用参照 が無効になる可能性があります。 強参照 を返す
PyDict_SetDefaultRef()を使うことを推奨します。
-
int PyDict_SetDefaultRef(PyObject *p, PyObject *key, PyObject *default_value, PyObject **result)¶
- 次に属します: Stable ABI (バージョン 3.15 より). Thread safety: Safe for concurrent use on the same object.
辞書 p にキー key がまだなければ、そのキーで default_value を挿入します。 result が
NULLでなければ、*result には 強参照 を設定します。 キーがなかった場合は default_value への参照、key がすでにあった場合は既存の値への参照です。 キーがすでにあり default_value を挿入しなかった場合は1、キーがなく default_value を挿入した場合は0を返します。 失敗すると-1を返し、例外を設定し、*resultにNULLを設定します。明確にすると、この関数を呼び出す前に default_value への強参照を持っていた場合、戻った後には default_value と *result (
NULLでない場合) の両方への強参照を持つことになります。 これらが同じオブジェクトを参照している場合もあり、その場合はそのオブジェクトへの別々の参照を 2 つ持つことになります。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* ではなく、UTF-8 でエンコードされた const char* のバイト文字列で指定します。Added in version 3.13.
-
PyObject *PyDict_Items(PyObject *p)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI. Thread safety: Atomic.
辞書内の全ての要素対が入った
PyListObjectを返します。最初の引数には
dictまたはfrozendictを指定できます。バージョン 3.15 で変更:
frozendictも受け付けるようになりました。
-
PyObject *PyDict_Keys(PyObject *p)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI. Thread safety: Atomic.
辞書内の全てのキーが入った
PyListObjectを返します。最初の引数には
dictまたはfrozendictを指定できます。バージョン 3.15 で変更:
frozendictも受け付けるようになりました。
-
PyObject *PyDict_Values(PyObject *p)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI. Thread safety: Atomic.
辞書 p 内の全ての値が入った
PyListObjectを返します。最初の引数には
dictまたはfrozendictを指定できます。バージョン 3.15 で変更:
frozendictも受け付けるようになりました。
-
Py_ssize_t PyDict_Size(PyObject *p)¶
- 次に属します: Stable 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)¶
- 次に属します: Stable ABI. Thread safety: Safe to call from multiple threads with external synchronization only.
辞書 p のすべてのキーと値のペアを反復処理します。 反復処理を開始するには、最初の呼び出しより前に ppos が指す
Py_ssize_tを0に初期化する必要があります。 この関数は辞書内の各ペアについて真を返し、すべてのペアを返し終わると偽を返します。 引数 pkey と pvalue は、それぞれキーと値の格納先となる PyObject* 変数を指すか、NULLである必要があります。 これらを通じて返される参照は借用参照です。 反復処理中に 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); }
フリースレッド ビルドでは、外部で同期を行わない限り、ミュータブルな
dictに対してこの関数はスレッドセーフではありません。Py_BEGIN_CRITICAL_SECTIONを使って、反復処理中に辞書をロックできます。Py_BEGIN_CRITICAL_SECTION(self->dict); while (PyDict_Next(self->dict, &pos, &key, &value)) { ... } Py_END_CRITICAL_SECTION();
frozendictに対してこの関数はスレッドセーフです。注釈
フリースレッドビルドでは、この関数はクリティカルセクション内で安全に使えます。 ただし、pkey と pvalue に返される参照は 借用参照 であり、クリティカルセクションを保持している間だけ有効です。 クリティカルセクションの外で、またはクリティカルセクションが中断される可能性がある状況でこれらのオブジェクトを使う必要がある場合は、強参照 を作成してください (例えば
Py_NewRef()を使います)。バージョン 3.15 で変更:
frozendictも受け付けるようになりました。
-
int PyDict_Merge(PyObject *a, PyObject *b, int override)¶
- 次に属します: Stable ABI. Thread safety: Safe for concurrent use on the same object.
マッピングオブジェクト b を反復処理し、キーと値のペアを辞書 a に追加します。 b は辞書、または
PyMapping_Keys()とPyObject_GetItem()の両方をサポートするオブジェクトであれば構いません。 override が真の場合、b に一致するキーがあれば a の既存のペアを置き換えます。 偽の場合は、a に一致するキーがないペアだけを追加します。 成功すると0、例外が送出された場合は-1を返します。注釈
フリースレッドビルド では、b が (標準のイテレータを使う)
dictの場合、操作中は a と b の両方をロックします。 b が dict 以外のマッピングの場合は a だけをロックし、b は別のスレッドによって同時に変更される可能性があります。
-
int PyDict_Update(PyObject *a, PyObject *b)¶
- 次に属します: Stable ABI. Thread safety: Safe for concurrent use on the same object.
C で表せば
PyDict_Merge(a, b, 1)と同じで、また Python のa.update(b)と似ていますが、PyDict_Update()は第二引数が "keys" 属性を持たない場合にキー/値ペアのシーケンスを反復することはありません。成功した場合には0を返し、例外が送出された場合には-1を返します。注釈
フリースレッドビルド では、b が (標準のイテレータを使う)
dictの場合、操作中は a と b の両方をロックします。 b が dict 以外のマッピングの場合は a だけをロックし、b は別のスレッドによって同時に変更される可能性があります。
-
int PyDict_MergeFromSeq2(PyObject *a, PyObject *seq2, int override)¶
- 次に属します: Stable ABI. Thread safety: Safe for concurrent use on the same object.
seq2 内のキーと値のペアを使って、辞書 a を更新またはマージします。 seq2 は、キーと値のペアとみなせる長さ 2 のイテラブルオブジェクトを生成するイテラブルオブジェクトでなければなりません。 キーが重複する場合、override が真なら最後の値を、偽なら最初の値を使います。 成功すると
0、例外が送出された場合は-1を返します。 戻り値を除いて等価な Python コードを示します。def PyDict_MergeFromSeq2(a, seq2, override): for key, value in seq2: if override or key not in a: a[key] = value
注釈
フリースレッド ビルドでは、a だけをロックします。 seq2 の反復処理は同期されないため、別のスレッドが同時に seq2 を変更する可能性があります。
-
PyObject *PyDict_AsFrozenDictAndClear(PyObject *dict)¶
Return a new
frozendictcreated from the existingdictinstance.Transfers all keys and values from dict to the newly allocated
frozendict. Clears the input dict on success. ReturnsNULLwith the exception set on error.This function is intended for building a
frozendictinstance via a temporary dict that is not exposed to user code. To "freeze" an arbitrary dictionary, for example one received from the user as an argument, preferPyFrozenDict_New()to leave the source intact.CPython 実装の詳細: Works with O(1) complexity.
Added in version 3.16.0a1 (unreleased).
-
int PyDict_AddWatcher(PyDict_WatchCallback callback)¶
- Thread safety: Safe to call from multiple threads with external synchronization only.
callback を辞書ウォッチャーとして登録します。 非負の整数の ID を返します。この ID は以降の
PyDict_Watch()呼び出しに渡す必要があります。 エラー時 (例えばウォッチャー ID に空きがない場合) には-1を返し、例外を設定します。注釈
この関数は内部で同期を行いません。 フリースレッド ビルドでは、呼び出し側が
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を返します。注釈
この関数は内部で同期を行いません。 フリースレッド ビルドでは、呼び出し側が
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 を監視対象にします。 dict が変更または解放されると、
PyDict_AddWatcher()で watcher_id を割り当てられたコールバックを呼び出します。 成功すると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 を監視対象から外します。 dict が変更または解放されても、
PyDict_AddWatcher()で watcher_id を割り当てられたコールバックは呼び出されなくなります。 この辞書は、それまでこのウォッチャーに監視されている必要があります。 成功すると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.
-
PY_FOREACH_DICT_EVENT(V)¶
PyDict_WatchEventの各定数の接尾部にマクロ V を適用します。 現在はV(ADDED) V(MODIFIED) V(DELETED) V(CLONED) V(CLEARED) V(DEALLOCATED)に展開されます。 マクロ V はイベント名を 1 つ受け取り、展開結果の間に必要な区切り記号を補う必要があります。
-
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が 1 回発生し、key はマージ元の辞書になります。コールバックは dict の内容を調べることはできますが、変更してはいけません。 変更すると、無限再帰などの予測できない影響が生じる可能性があります。 副作用で辞書を変更する可能性があるため、コールバック内で Python コードを実行しないでください。
event が
PyDict_EVENT_DEALLOCATEDの場合、コールバック内で破棄される直前の辞書への新しい参照を取得すると、その辞書は復活し、その時点では解放されなくなります。 復活したオブジェクトが後で破棄されると、その時点で有効なウォッチャーのコールバックが再び呼び出されます。コールバックは、通知対象の 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¶
- 次に属します: Stable ABI.
辞書のキーのビューの型オブジェクトです。 Python では
dict.keys()が返すオブジェクトの型です。
-
PyTypeObject PyDictValues_Type¶
- 次に属します: Stable ABI.
辞書の値のビューの型オブジェクトです。 Python では
dict.values()が返すオブジェクトの型です。
-
PyTypeObject PyDictItems_Type¶
- 次に属します: Stable ABI.
辞書の要素対のビューの型オブジェクトです。 Python では
dict.items()が返すオブジェクトの型です。
凍結された辞書オブジェクト¶
Added in version 3.15.
-
PyTypeObject PyFrozenDict_Type¶
この
PyTypeObjectのインスタンスは Python の凍結された辞書の型を表します。 Python レイヤの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の場合は空の辞書を作成します。
順序付き辞書¶
Python の C API には、C から collections.OrderedDict を扱うためのインターフェースがあります。
Python 3.7 以降、通常の辞書もデフォルトで順序を保持するため、これらの関数が必要になることはあまりありません。
可能であれば PyDict* を使ってください。
-
PyTypeObject PyODict_Type¶
順序付き辞書の型オブジェクトです。 Python レイヤの
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)¶
順序付き辞書 od に、キー key で value を挿入します。 成功すると
0、失敗すると例外を設定して-1を返します。PyDict_SetItem()に相当します。
-
int PyODict_DelItem(PyObject *od, PyObject *key)¶
順序付き辞書 od から、キー key のエントリーを削除します。 成功すると
0、失敗すると例外を設定して-1を返します。PyDict_DelItem()に相当します。
以下は PyDict API の ソフト非推奨 の別名です:
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|