CSV и JSON · 13 из 13
Отчёт по огромной выгрузке
Задействованы также: Циклы, Файлы
За три года выгрузка выросла до нескольких гигабайт. Прошлый отчёт съел всю память сервера и не досчитался.
Что сделать
Посчитайте отчёт по выгрузке в несколько гигабайт — так, чтобы он не съел всю память сервера.
Что приходит
imya— имя CSV-файла со столбцами «напиток», «количество», «цена»; целиком в память его не читатьpozitsiy— сколько лучших напитков показать
Что вернуть
Кортеж (выручка, сколько строк разобрано, лучшие); лучшие — до pozitsiy пар (напиток, выручка) по убыванию, при равенстве — по алфавиту.
Допишите функцию svodka_potokom в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
Латте 2 по 180, чай 5 по 90, ещё латте 1 по 180: выручка 990, разобрано 3 строки, латте принёс 540, чай — 450. При двух позициях ответ — (990, 3, [("латте", 540), ("чай", 450)]).
with open("b.csv", "w", encoding="utf-8", newline="") as f:
f.write("напиток,количество,цена\nлатте,2,180\nчай,5,90\nлатте,1,180\n")
svodka_potokom('b.csv', 2)
(990, 3, [('латте', 540), ('чай', 450)])
Функция принимает имя CSV со столбцами «напиток», «количество», «цена» и число позиций в ответе (целое больше нуля). Возвращает кортеж: общая выручка (целое), число разобранных строк, список первых по выручке позиций — кортежи (напиток, выручка), по убыванию, при равенстве по алфавиту, не больше заданного числа. Файл нельзя читать в память целиком.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.