class ListsDict: def __init__(self): self._data: dict[str, list] = dict() def add(self, key, value): if key not in self._data: self._data[key] = list() if value not in self._data[key]: self._data[key].append(value) def delete(self, key, value): if self._data.get(key, None): self._data[key].remove(value) @property def index(self): res = list() for key, collection in self._data.items(): for elem in collection: if elem not in res: res.append(elem) return res def by_key(self, key): return self._data.get(key, None)