HashTableIter#
- class HashTableIter(*args, **kwargs)#
A GHashTableIter structure represents an iterator that can be used
to iterate over the elements of a HashTable
. GHashTableIter
structures are typically allocated on the stack and then initialized
with init()
.
The iteration order of a HashTableIter
over the keys/values in a hash
table is not defined.
Methods#
- class HashTableIter
- get_hash_table() dict[None, None] #
Returns the
HashTable
associated withiter
.Added in version 2.16.
- init(hash_table: dict[None, None]) None #
Initializes a key/value pair iterator and associates it with
hash_table
. Modifying the hash table after calling this function invalidates the returned iterator.The iteration order of a
HashTableIter
over the keys/values in a hash table is not defined.GHashTableIter iter; gpointer key, value; g_hash_table_iter_init (&iter, hash_table); while (g_hash_table_iter_next (&iter, &key, &value)) { // do something with key and value }
Added in version 2.16.
- Parameters:
hash_table – a
HashTable
- next() tuple[bool, None, None] #
Advances
iter
and retrieves the key and/or value that are now pointed to as a result of this advancement. IfFalse
is returned,key
andvalue
are not set, and the iterator becomes invalid.Added in version 2.16.
- remove() None #
Removes the key/value pair currently pointed to by the iterator from its associated
HashTable
. Can only be called afternext()
returnedTrue
, and cannot be called more than once for the same key/value pair.If the
HashTable
was created usingnew_full()
, the key and value are freed using the supplied destroy functions, otherwise you have to make sure that any dynamically allocated values are freed yourself.It is safe to continue iterating the
HashTable
afterward:while (g_hash_table_iter_next (&iter, &key, &value)) { if (condition) g_hash_table_iter_remove (&iter); }
Added in version 2.16.
- Returns:
0 if the file was successfully removed, -1 if an error occurred
- replace(value: None) None #
Replaces the value currently pointed to by the iterator from its associated
HashTable
. Can only be called afternext()
returnedTrue
.If you supplied a
value_destroy_func
when creating theHashTable
, the old value is freed using that function.Added in version 2.30.
- Parameters:
value – the value to replace with