# HackerRank Collections.OrderedDict() solution in python

In this Collections.orderedDict() problem solution in python An OrderedDict is a dictionary that remembers the order of the keys that were inserted first. If a new entry overwrites an existing entry, the original insertion position is left unchanged.

You are the manager of a supermarket. You have a list of N items together with their prices that consumers bought on a particular day. Your task is to print each item_name and net_price in order of its first occurrence.

item_name = Name of the item.

net_price = Quantity of the item sold multiplied by the price of each item.

## 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]))```