Задача «Продажи»

Условие

Дана база данных о продажах некоторого интернет-магазина. Каждая строка входного файла представляет собой запись вида Покупатель товар количество, где Покупатель — имя покупателя (строка без пробелов), товар — название товара (строка без пробелов), количество — количество приобретенных единиц товара.

Создайте список всех покупателей, а для каждого покупателя подсчитайте количество приобретенных им единиц каждого вида товаров. Список покупателей, а также список товаров для каждого покупателя нужно выводить в лексикографическом порядке.

Решение

  1. from collections import defaultdict
  2. from sys import stdin
  3. clients = defaultdict(lambda: defaultdict(int))
  4. for line in stdin.readlines():
  5.     client, thing, value = line.split()
  6.     clients[client][thing] += int(value)
  7. for client in sorted(clients):
  8.     print(client + ':')
  9.     for thing in sorted(clients[client]):
  10.         print(thing, clients[client][thing])