# HackerRank Collections.OrderedDict() solution in python

In this Collections.orderedDict() problem we need to develop a python program that can read an integer and string that are separated with a line. and then we need to use the orderedDict() function to store the input and then print the item name and price of that item on the output screen.

## Problem solution in Python 2 programming.

```from collections import OrderedDict
nTrans = int(raw_input())
inventories = OrderedDict()
for n in range(nTrans):
tmp = raw_input().split()
item = ' '.join(tmp[0:len(tmp)-1])
price = int(tmp[-1])
if item in inventories:
inventories[item] += price
else:
inventories[item] = price
items = list(inventories.items())
items.sort()
for item in items:
print item[0], item[1]```

## Problem solution in Python 3 programming.

```# Enter your code here. Read input from STDIN. Print output to STDOUT
from collections import OrderedDict
d = OrderedDict()
for _ in range(int(input())):
item, space, quantity = input().rpartition(' ')
d[item] = d.get(item, 0) + int(quantity)
for item, quantity in d.items():
print(item, quantity)```

### Problem solution in pypy programming.

```# Enter your code here. Read input from STDIN. Print output to STDOUT
from collections import OrderedDict
items = int(raw_input())
items_price = OrderedDict()
for _ in range(items):
desc = raw_input().split()
if not items_price.get(" ".join(desc[0:-1]),None):
items_price[" ".join(desc[0:-1])] =0
items_price[" ".join(desc[0:-1])] += int(desc[-1])

for i,j in items_price.items():
print i,j```

### Problem solution in pypy3 programming.

```from collections import OrderedDict

d = OrderedDict()
for _ in range(int(input())):
info = input().split(' ')
price = int(info[-1])
info.pop()
item = ' '.join(info)
price = int(price)
if not item in d:
d[item] = price
else:
d[item] += price

for pair in d:
print(pair + ' ' + str(d[pair]))```