Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Aggregate by Operation by Sim0000
def aggr_operation(data: list[tuple[str, int]]) -> dict[str, int]:
d = {}
for s, v in data:
op, k = s[0], s[1:]
u = d.get(k, 0)
if op == '+': d[k] = u + v
if op == '-': d[k] = u - v
if op == '*': d[k] = u * v
if op == '/' and v: d[k] = u / v
if op == '=': d[k] = v
return {k: d[k] for k in d if k and d[k]}
print("Example:")
print(aggr_operation([("+a", 7), ("-b", 8), ("*a", 10)]))
assert aggr_operation([("+a", 7), ("-b", 8), ("*a", 10)]) == {"a": 70, "b": -8}
assert aggr_operation([]) == {}
assert aggr_operation([("+a", 5), ("+a", -5), ("-a", 5), ("-a", -5)]) == {}
assert aggr_operation([("*a", 0), ("=a", 0), ("/a", 0), ("-a", -5)]) == {"a": 5}
print("The mission is done! Click 'Check Solution' to earn rewards!")
Aug. 21, 2022
Comments: