relentless.collections.FixedKeyDict#

class relentless.collections.FixedKeyDict(keys, default=None)#

Dictionary with fixed keys.

Parameters:
  • keys (array_like) – List of keys to be fixed.

  • default (scalar) – Initial value to fill in the dictionary, defaults to None.

Examples

Create a keyed dictionary:

d = FixedKeyDict(keys=('A','B'))

Default values:

>>> print(d)
{'A': None, 'B': None}

Set default values:

d = FixedKeyDict(keys=('A','B'), default=0.0)
>>> print(d)
{'A':0.0, 'B':0.0}

Iterate as a dictionary:

for k in d:
    d[k] = 1.0

Access by key:

>>> d['A']
1.0
>>> d['B']
1.0

Partially reassign/update values:

d.update({'A':0.5})
d.update(A=0.5)  # equivalent statement
>>> print(d)
{'A':0.5, 'B':1.0}

Single-key dictionary still needs keys as a tuple:

FixedKeyDict(keys=('A',))

Methods

clear()

Clear entries in the dictionary, resetting to default.

get(k[,d])

items()

keys()

pop(k[,d])

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem()

as a 2-tuple; but raise KeyError if D is empty.

setdefault(k[,d])

update([E, ]**F)

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values()

clear()#

Clear entries in the dictionary, resetting to default.

get(k[, d]) D[k] if k in D, else d.  d defaults to None.#
items() a set-like object providing a view on D's items#
keys() a set-like object providing a view on D's keys#
pop(k[, d]) v, remove specified key and return the corresponding value.#

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() (k, v), remove and return some (key, value) pair#

as a 2-tuple; but raise KeyError if D is empty.

setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D#
update([E, ]**F) None.  Update D from mapping/iterable E and F.#

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values#