Simple exercise
Rodrick Brown
rodrick.brown at gmail.com
Thu Mar 10 04:02:22 EST 2016
>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
More information about the Python-list
mailing list