Advertisement
Guest User

uniquecitysales

a guest
Feb 14th, 2016
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.53 KB | None | 0 0
  1. import os
  2.  
  3. import sys
  4. from iso8601 import iso8601
  5.  
  6. sales = {}
  7.  
  8. try:
  9.     filename = input()
  10.     if not os.path.isfile(filename) or not os.access(filename, os.R_OK):
  11.         raise ValueError()
  12.  
  13.     with open(filename, 'r', encoding='utf8') as f:
  14.         for line in f:
  15.             if line.strip() == "":
  16.                 continue
  17.             split = line.split(",")
  18.             if len(split) != 5:
  19.                 raise ValueError()
  20.             idf = split[0].replace('"', "")
  21.             country = split[1]
  22.             city = split[2].replace('"', "")
  23.             dt = split[3].replace('"', "")
  24.             price = float(split[4])
  25.             dtparse = iso8601.parse_date(dt)
  26.             if city not in sales:
  27.                 sales[city] = set()
  28.             sales[city].add(idf)
  29.  
  30.     if not sales:
  31.         raise ValueError()
  32.  
  33.     result = {}
  34.     for city, ids in sales.items():
  35.         newids = set()
  36.         for city1, ids1 in sales.items():
  37.             if city == city1:
  38.                 continue
  39.             newids |= ids1
  40.  
  41.         for idx in ids:
  42.             if idx not in newids:
  43.                 if city not in result:
  44.                     result[city] = set()
  45.                 result[city].add(idx)
  46.  
  47.     if not result:
  48.         print("NO UNIQUE SALES")
  49.         sys.exit()
  50.  
  51.     for key in sorted(result):
  52.         sortedIds = result[key]
  53.         if len(sortedIds) > 1:
  54.             sortedIds = sorted(sortedIds)
  55.         print("{},{}".format(key, ",".join(sortedIds)))
  56. except Exception as e:
  57.     print("INVALID INPUT")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement