BCDict
Contents
BCDict#
Python dictionary with broadcast support.
README.md
Jupyter Notebook
Full API Documentation
MIT
Broadcast Dictionary#
Python dictionary with broadcast support.
Behaves like a regular dictionary.
Allows to apply operations to all its values at once. Whithout loops, whithout dict comprehension.
Installation#
pip install bcdict
Usage#
from bcdict import BCDict
>>> d = BCDict({"a": "hello", "b": "world!"})
>>> d
{'a': 'hello', 'b': 'world!'}
Regular element access:
>>> d['a']
'hello'
Regular element assignments
>>> d['a'] = "Hello"
>>> d
{'a': 'Hello', 'b': 'world!'}
Calling functions:
>>> d.upper()
{'a': 'HELLO', 'b': 'WORLD!'}
Slicing:
>>> d[1:3]
{'a': 'el', 'b': 'or'}
Applying functions:
>>> d.pipe(len)
{'a': 5, 'b': 6}
When there is a conflict between an attribute in the values and an attribute in
BCDict
, use the attribute accessor explicitly:
>>> d.a.upper()
{'a': 'HELLO', 'b': 'WORLD!'}
Slicing with conflicting keys:
>>> n = BCDict({1:"hello", 2: "world"})
>>> n[1]
'hello'
>>> # Using the attribute accessor:
>>> n.a[1]
{1: 'e', 2: 'o'}
Next steps#
See the introduction notebook and other examples.
Also check out the full documentation on bcdict.readthedocs.io.
Changelog#
v0.5.0#
feature: broadcast attribute and item assignment
fix: broadcast slicing with
.a
accessor
v0.4.3#
fix: unpickling causes recursion error
v0.4.2#
docs: improve the documenation
v0.4.1#
fix: sphinxcontrib-mermaid gets installed as default dependency, should be dev dependency
v0.4.0#
new functions
eq()
andne()
for equality/inequality with broadcast support
v0.3.0#
new functions in
bcdict
package:apply()
broadcast()
broadcast_arg()
broadcast_kwarg()
docs: write some documentation and host it on readthedocs
v0.2.0#
remove
item()
function. Use.a[]
instead.
v0.1.0#
initial release
Original repository: https://github.com/mariushelf/bcdict
Author: Marius Helf (helfsmarius@gmail.com)