Skip to content

Commit

Permalink
✅ Add solution for dictionary merge
Browse files Browse the repository at this point in the history
  • Loading branch information
Sigmanificient committed Jul 2, 2023
1 parent 3ef557b commit 5df3d8d
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/python/katas/py6kyu/dictionary_merge.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from collections import defaultdict
from typing import Dict, List


def merge(*dicts: Dict[str, int]) -> Dict[str, List[int]]:
out = defaultdict(list)

for d in dicts:
for k, v in d.items():
out[k].append(v)

return dict(out)


def test_merge():
assert merge({}, {}, {}) == {}
assert merge({"A": 1, "B": 2, "C": 3}) == {"A": [1], "B": [2], "C": [3]}

assert merge({"A": 1}, {"B": 2}) == {"A": [1], "B": [2]}
assert (
merge({"A": 1, "B": 2, "C": 3}, {"A": 4, "D": 5})
== {"A": [1, 4], "B": [2], "C": [3], "D": [5]}
)

0 comments on commit 5df3d8d

Please sign in to comment.