>From the following input 9 BANANA FRIES 12 POTATO CHIPS 30 APPLE JUICE 10 CANDY 5 APPLE JUICE 10 CANDY 5 CANDY 5 CANDY 5 POTATO CHIPS 30
I'm expecting the following output BANANA FRIES 12 POTATO CHIPS 60 APPLE JUICE 20 CANDY 20 However my code seems be returning incorrect value #!/usr/bin/env python3 import sys import re from collections import OrderedDict if __name__ == '__main__': od = OrderedDict() recs = int(input()) for _ in range(recs): file_input = sys.stdin.readline().strip() m = re.search(r"(\w.+)\s+(\d+)", file_input) if m: if m.group(1) not in od.keys(): od[m.group(1)] = int(m.group(2)) else: od[m.group(1)] += int(od.get(m.group(1),0)) for k,v in od.items(): print(k,v) What's really going on here? $ cat groceries.txt | ./groceries.py BANANA FRIES 12 POTATO CHIPS 60 APPLE JUICE 20 CANDY 40 -- https://mail.python.org/mailman/listinfo/python-list