grg's picture
Cleaned old git history
be5548b
raw
history blame contribute delete
737 Bytes
class DictList(dict):
"""A dictionnary of lists of same size. Dictionnary items can be
accessed using `.` notation and list items using `[]` notation.
Example:
>>> d = DictList({"a": [[1, 2], [3, 4]], "b": [[5], [6]]})
>>> d.a
[[1, 2], [3, 4]]
>>> d[0]
DictList({"a": [1, 2], "b": [5]})
"""
__getattr__ = dict.__getitem__
__setattr__ = dict.__setitem__
def __len__(self):
return len(next(iter(dict.values(self))))
def __getitem__(self, index):
return DictList({key: value[index] for key, value in dict.items(self)})
def __setitem__(self, index, d):
for key, value in d.items():
dict.__getitem__(self, key)[index] = value